Estou tentando fazer a autenticação do usuário mas está dando erro, alguem pode me dar uma luz...
Trecho da index:
<f:view>
<h:form id="formLogin">
<fieldset>
<h:panelGrid columns="3">
<div class="field">
<h:outputLabel value="Login" for="un" styleClass="label"/>
<h:inputText id="un" value="#{login.login}" styleClass="input"/>
</div>
<div class="field">
<h:outputLabel value="Senha" for="pw" styleClass="label"/>
<h:inputSecret id="pw" value="#{login.senha}" styleClass="input"/>
</div>
</h:panelGrid>
<a4j:commandButton type="button" value="Login" action="#{login.validateLogin}" styleClass="buttonLogin"/>
<h:message for="formLogin"/>
</fieldset>
</h:form>
</f:view>
Controle login:
package br.com.aquaRio.control;
import br.com.aquaRio.persistence.UsuarioDao;
public class Login {
private boolean loginOk;
private String login;
private String senha;
int contLog = 0;
public boolean isLoginOk() {
return loginOk;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String validateLogin() {
if (new UsuarioDao().autenticar(login, senha)) {
loginOk = true;
return "secpage";
} else {
contLog = contLog + 1;
if (contLog < 3) {
return "index";
} else {
return "seclogin";
}
}
}
public String offLogin() {
loginOk = false;
return "index";
}
}
Controle materLogin:
package br.com.aquaRio.control;
import java.util.List;
import java.util.ArrayList;
public class ManterLoginUsuario {
private List<String> data = new ArrayList<String>();
private List<String> securedData = new ArrayList<String>();
private boolean loginOk;
private String userName;
public ManterLoginUsuario() {
securedData.add("Bem vindo: " + userName);
}
public void setLoginOk(boolean loginOk) {
this.loginOk = loginOk;
}
public List<String> getSecuredData() {
if (!loginOk) {
throw new SecurityException();
}
return securedData;
}
public List<String> getData() {
return data;
}
}
Meu usuarioDao:
package br.com.aquaRio.persistence;
import org.hibernate.*;
import br.com.aquaRio.hibernate.HibernateUtil;
import br.com.aquaRio.model.*;
public class UsuarioDao {
protected Session s;
protected Transaction t;
protected Query q;
public void salvar(Usuario u) throws Exception {
s = HibernateUtil.getInstance();
t = s.beginTransaction();
s.save(u);
t.commit();
}
public void excluir(Usuario u) throws Exception {
s = HibernateUtil.getInstance();
t = s.beginTransaction();
s.delete(u);
t.commit();
}
public void atualizar(Usuario u) throws Exception {
s = HibernateUtil.getInstance();
t = s.beginTransaction();
s.update(u);
t.commit();
}
public Usuario obterPorId(Integer id) throws Exception {
s = HibernateUtil.getInstance();
return (Usuario) s.get(Usuario.class, id);
}
public boolean autenticar(String login, String senha) {
boolean valid = false;
q = s.createQuery("from Usuario u where u.login = :lg and u.senha = :md5(sen)");
q.setString("lg", login);
q.setString("sen", senha);
Usuario usuario = (Usuario) q.uniqueResult();
if (usuario != null) {
valid = true;
}
return valid;
}
public boolean cpfExistente(String cpf) throws Exception{
boolean valid = false;
s = HibernateUtil.getInstance();
q = s.createQuery("from Usuario u where u.cpf = :cpf");
Usuario usuario = (Usuario) q.uniqueResult();
if (usuario != null) {
valid = true;
}
return valid;
}
}
Acho que estou fazendo algo de errado no meu método autenticar...