salve galera,
estou com um problema com o filtro de login da minha aplicação.
um formulario recebe o login e a senha e joga neste Servlet:
[code] String nome = request.getParameter(“login”) ;
String senha = request.getParameter(“senha”);
HttpSession session = request.getSession();
if(verificaSenha(nome,senha)){
session.setAttribute("logado", true);
mensagem = nome + "Logado com sucesso";
caminho = "/adm/index.jsp";
}else{
caminho = "index.jsp";
mensagem = "erro ao tentar logar";
}
request.setAttribute("msg", mensagem);
RequestDispatcher rd = request.getRequestDispatcher(caminho);
rd.forward(request,response);
[/code]
para bloquear acesso a algumas páginas sem estar logado crie um Filter:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
HttpSession session = ((HttpServletRequest)request).getSession();
boolean logado = Boolean.parseBoolean(String.valueOf(session.getAttribute("logado"))) ;
if(!logado){
request.setAttribute("msg","Você não está logado no sistema!");
((HttpServletResponse)response).sendRedirect("../index.jsp");
}else{
chain.doFilter(request, response);
}
}
o filtro funciona para quem não está logado, ao fazer login consigo acessa a index do admin, porém ao tentar outra página perco o status de logado e caio no filtro de novo.
por exemplo:
loguei a passei para index do admin. Ao tentar acessar outra página do admin caio no filtro e volto pro login.
alguma idéia ou corre~ção no meu código?
valeu