yorgan:
Você também pode utilizar um Filter. ...
Olá yorgan, td bem?
Estou tentando fazer essa implementação de validação, mas fiquei em dúvida onde devo instanciar a "session.setAttribute("login", login);":
Eu tenho a classe Login, que está assim:
package br.gov.rr.setrabes.estrutura;
public class Login {
private String login;
private String senha;
private String nivel;
public Login() {
}
public Login(String login, String senha, String nivel) {
this.setLogin(login);
this.setSenha(senha);
this.setNivel(nivel);
}
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 getNivel() {
return nivel;
}
public void setNivel(String nivel) {
this.nivel = nivel;
}
public boolean isLogado() {
// TODO Auto-generated method stub
return false;
}
}
Na classe LoginHandler, crio uma regra de acesso tipo usuário/administrador:
package br.gov.rr.setrabes.handler;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import org.hibernate.Session;
import br.gov.rr.setrabes.dao.Dao;
import br.gov.rr.setrabes.dao.LoginDAO;
import br.gov.rr.setrabes.estrutura.Login;
import br.gov.rr.setrabes.estrutura.Usuario;
import br.gov.rr.setrabes.util.HibernateUtil;
public class LoginHandler {
private LoginDAO loginDAO = new LoginDAO();
private Login LO = new Login();
private Boolean logado = new Boolean(false);
public LoginHandler() {
}
public Boolean isLogado() {
return this.logado;
}
public void setLogado(Boolean logado) {
this.logado = logado;
}
public Login getLO() {
return LO;
}
public void setLO(Login LO) {
this.LO = LO;
}
public String login() throws NoSuchAlgorithmException {
System.out.println("login= " + LO.getLogin());
System.out.println("senha= " + LO.getSenha());
boolean ok = loginDAO.getCheca(LO.getLogin(), LO.getSenha(), "1",
"logado");
if (ok == true) {
System.out.println("USUARIO LOGADO COM SUCESSO");
return "ok";
}
boolean admin = loginDAO.getCheca(LO.getLogin(), LO.getSenha(), "2",
"logado");
if (admin == true) {
System.out.println("ADMIN LOGADO COM SUCESSO");
return "admin";
} else
System.out.println("ACESSO INVÁLIDO");
return "erro";
}
public List<Usuario> getUsuarios() {
System.out.println("carregando usuarios ...");
Session session = HibernateUtil.currentSession();
Dao<Usuario> dao = new Dao<Usuario>(session, Usuario.class);
return dao.list();
}
}
Na classe LoginDAO, crio a regra de conexao com o banco postgresql;
package br.gov.rr.setrabes.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.hibernate.Session;
public class LoginDAO {
String login;
String senha;
String nivel;
String status;
public LoginDAO() {
}
public LoginDAO(Session currentSession) {
// TODO Auto-generated constructor stub
}
public boolean getCheca(String login, String senha, String nivel,
String status) {
boolean ok = false;
try {
Class.forName("org.postgresql.Driver").newInstance();
System.out.println("DRIVER CARREGADO");
} catch (Exception e) {
System.out.println("driver nao carregado");
}
try {
String sql = "SELECT * from Usuario where login=? AND senha=? AND nivel=?";
// comentei para usar o conexao.class
Connection c = DriverManager.getConnection(
"jdbc:postgresql://localhost:5432/mogmo", "postgres",
"postgres");
PreparedStatement pstm = c.prepareStatement(sql);
pstm.setString(1, login);
pstm.setString(2, senha);
pstm.setString(3, nivel);
ResultSet rs = pstm.executeQuery();
System.out.println("CONEXAO ESTABELECIDA");
if (!rs.getString("login").isEmpty()
&& rs.getString("login") != null)
if (rs.next() && !rs.getString("login").isEmpty()
&& rs.getString("login") != null
&& rs.getString("login").equals(login)
&& rs.getString("senha").equals(senha)
&& rs.getString("nivel").equals(nivel)) {
ok = true;
System.out.println("Usuario carregado");
} else {
ok = false;
rs.close();
c.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
status = "erro sql:" + ex.getMessage();
}
return ok;
}
public String setLogin() {
return login;
}
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 getNivel() {
return nivel;
}
public void setNivel(String nivel) {
this.nivel = nivel;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
E ae, o que vcs acham?? onde eu posso instanciar a sessao criando um atributo?
agradeço a todos!