estou fazendo uma aplicação em JSF, utilizando Spring Security e Hibernate. Na teoria tudo bate, mas quando vou logar no sistema, deparo com o erro “java.sql.SQLException: Column Index out of range, 3 > 2.” As colunas do meu banco são codigo, usuario, email, login e senha. O que seria este erro, qual sua causa e solução? Devo postar alguma parte do código aqui para avaliação?
Resolvi meu problema editando o arquivo WEB-INF/applicationContext-security.xml, substituindo
<jdbc-user-service data-source-ref="ocupacaoDataSource"
authorities-by-username-query="SELECT u.login, p.permissao
FROM usuario u, usuario_permissao p
WHERE u.codigo = p.usuario
AND u.login = ?"
users-by-username-query="SELECT login, senha FROM usuario WHERE login = ?" />
por
<jdbc-user-service data-source-ref="ocupacaoDataSource"
authorities-by-username-query="SELECT u.login, p.permissao
FROM usuario u, usuario_permissao p
WHERE u.codigo = p.usuario
AND u.login = ?"
users-by-username-query="SELECT login, senha, true FROM usuario WHERE login = ?" />
A mudança foi o true na última linha, ele age como coringa pois o xml precisa de 3 argumentos para fazer a verificação de login. Espero que isso ajude alguém que tenha o mesmo problema que eu tive.
Hehe amigo, obtive o mesmo problema! Provavelmente estamos seguindo o mesmo material de apoio, tabem esta lendo o livro Java para WEB - Décio Heinzelmann?
Vamos nos ajudar, trocar informações e experiencias para um aprendizado mais rapido!