E ai, pessoal…
Estou usando o Tomcat para fazer validação de login e o que acontece é o seguinte…
Quando uso uma senha não criptografada no banco, o login funciona corretamente, porém, quando uso criptografia MD5 o login não é efetuado.
Estava dando uma olhada nos fontes do Tomcat e pelo que parece ele pega a senha criptografada do Postgres, converte para uma String e compara com a String criptografada que foi passada no campo de senha do formulário de login. O correto seria converter para um Array de bytes e comparar os dois Arrays, mas o Tomcat faz comparação de Strings. Como o Java trabalha com UTF-16 e o Postgres com UTF-8, a validação não bate.
Obs.: No Oracle funciona corretamente, pois ele da a opção de trabalhar com UTF-16.
Gostaria de saber se alguém já passou por este problema e se tem uma solução que possa compartilhar.
Desde já, agradeço.