Olá,
Estou tentando criar uma validação de usuário, porém preciso que se ele for ADMINISTRADOR tenha acesso total, parte de requisição de material e parte de administração do sistema, coloquei um filter, tá funcionado porém só consigo validar UM TIPO DE USUARIO, por exemplo: Se eu entrar com a senha de administrador certa ele valida, se entrar com a errada ele não faz nada, fica onde está, mas se eu entrar com a senha de usuario requisitante ele tbm não faz nada.
meus códigos…
Validação User
public class PessoaFace {
PessoaDao dao = new PessoaDao();
private String login;
private String senha;
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;
}
/** Creates a new instance of PessoaFace */
public PessoaFace() {
}
public String doLogin() throws ClassNotFoundException, SQLException {
boolean valido = dao.validateUser(login, senha);
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("pessoaLogada", valido);
if (valido)
return "gotoInicio";
else
if (validoReq)
return "gotoRequisicao";
else
return "gotoError";
}
}
AutenticarUserFilter metodo doFilter()
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
String url = req.getRequestURL().toString();
Object logged = req.getSession().getAttribute("pessoaLogada");
if (logged == null || ((Boolean)logged).booleanValue()== false){
if (!url.contains("login")){
resp.sendRedirect("/ProjetoGAPF/login.faces");
}
}
Minha Instrução Sql de Validação
public class PessoaDao extends DataUtil {
private int administrador = 1;
private int requisitante = 2;
public PessoaDao() {
super();
}
public boolean validateUser(String login, String senha) throws ClassNotFoundException, SQLException{
PreparedStatement ps = getPreparedStatement("SELECT * FROM gerenciamento02.pessoa where pess_login = ? " +
" and pess_senha = ? and tipo_id = ? ");
ps.setString(1, login);
ps.setString(2, senha);
ps.setInt(3, administrador);
ResultSet rs = ps.executeQuery();
boolean toReturn = rs.next();
rs.close();
ps.close();
return toReturn;
}
public boolean validateReq(String login, String senha) throws ClassNotFoundException, SQLException{
PreparedStatement ps = getPreparedStatement("SELECT * FROM gerenciamento02.pessoa where pess_login = ? " +
"and pess_senha = ? and tipo_id = ? ");
ps.setString(1, login);
ps.setString(2, senha);
ps.setInt(3, requisitante);
ResultSet rs = ps.executeQuery();
boolean toReturn = rs.next();
rs.close();
ps.close();
return toReturn;
}
}
Se alguém puder me ajudar…