Nome de usuário j_security_check codificado em UTF-8 decodificado incorretamente como Latin-1 na região do Tomcat

Estou investigando um problema em que um nome de usuário com o caractere Latin-1 é introduzido em um formulário de login. O nome de usuário contém o caracter á. Investigo a parte do servidor em que tenho:

public class MyRealm estende o RealmBase implementa o Realm {public Principal authenticate (nome de usuário da String, senha da String) {... autenticação real implementada aqui}}

Se eu imprimir os bytes: nomedeusuario.getBytes (), vejo que o caractere á possui: C3 83 C2 A1 Normalmente, o caractere á na codificação UTF8 deve ter: C3 A1. Se eu codificá-lo em UTF8 novamente, recebo: C3 83 C2 A1 o que meu software imprime.

Fiz o check-in na rede, capturando que o nome de usuário foi enviado corretamente com o C3 A1. O código fonte do formulário da página de login é:

        <form name="loginForm" action="j_security_check" method="post" enctype="application/x-www-form-urlencoded">
        <table>
            <tr>
                <td colspan="2" align="right">Secure connection:
                    <input type="checkbox" name="checkbox" class="style5" onclick="javascript:httpHttps();"></td>
            </tr>
            <tr>
                <td class="style5">Login:</td>
                <td><input type="text" name="j_username" autocomplete="off" style="width:150px" /></td>
            </tr>

Então, acho que não há nada errado (2 vezes a conversão UTF8) no lado do cliente. Se eu decodificar duas vezes de UTF8 na função authenticate () o nome de usuário, a autenticação funcionará bem, mas tenho medo de aplicar esta solução ao meu problema

Onde devo procurar essa codificação do nome de usuário na função de autenticação (nome de usuário da string, senha da string) do território? O lado do servidor está sendo executado em um Linux (RedHat) com httpd-2.2.15 e tomcat6-6.0.24.

questionAnswers(1)

yourAnswerToTheQuestion