Pessoal, eu sei como criar uma sessão e fazer tudo funcionar perfeitamente, porém não sei como manter páginas abertas mesmo sem estar logado.
Com esta classe eu consigo deixar a verificação funcionando normalmente:
mas eu tenho alguma páginas que pode ser acessadas externamente sem a necessidade de estar logado, porém com este código ele joga todos para a página de autenticação antes.
como que eu abro essas exceções???
Que tal você criar um array das páginas que não serão filtradas e dentro do doFilter(…) você põe um if para ver se é uma delas… não é o melhor jeito de se fazer, mas, funciona…
R
Reudismam
Você pode colocar suas páginas privadas em um diretório tipo: privado. Daí é só especificar o caminho do filtro para /private/* (tudo o que estiver no diretório privado). Atenção não coloque a pasta de login dentro deste diretório.
C
caputojf1
Mais facil ainda…
Todas as páginas que requerem login ficarão dentro de um diretório /seguro/*.jsp
As demais na raiz…
E no web.xml o mapeamento do filter fica assim:
Onde e como exatamente eu uso esse filtro ai? Estou implementando um login e não sei como usar o filtro.
Obrigado!
F
Filipe_A
Consegui! Fiz desta maneira:
Programei um filtro:
publicclassLoginFilterimplementsSerializable,Filter{@OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{// TODO Auto-generated method stubHttpServletRequestreq=(HttpServletRequest)request;HttpServletResponseres=(HttpServletResponse)response;UserManageruserManager=(UserManager)req.getSession().getAttribute("userManager");if(userManager==null||!userManager.isLoggedIn()){// Aqui retorno se não existir...res.sendRedirect(req.getContextPath()+"/index.xhtml");}else{// Aqui continua se existirchain.doFilter(request,response);}}
Este filtro irá filtrar todas as páginas no diretório “secured”!
Me surgiu uma dúvida? Como montar uma url amigável? para não aparecer no navegador: http:www.site.com.br/secured/pag.html
Bom o meu filtro parece que funcionou, mas, se alguém tiver alguma melhoria ou sugestão eu agradeço!