Como impedir entrar em página jsf digitando no browser
3 respostas
L
leorsilva
Caros amigos da GUJ… estou começando no desenvolvimento em JSF e estou implementando um sistema usando JSF 1.2, RichFaces, Mysql, TomCat. Já tenho algumas funcionalidades prontas, mas queria a ajuda de alguém para resolver uma coisa que deve ser básica, mas ñ tenho conhecimento de como se faz.
Como eu poderia fazer com quem ninguém pudese acessar nenhuma página de conteúdo sem realizar o devido login na aplicação? se alguém puder me ajudar, fico grato.
Segue o código de um filtro de exemplo. Ele não deixa o usuário acessar as páginas situadas dentro do diretório "restrito" se não estiver logado na sessão.
Além disso, se o usuário tentar acessar a página de login já estando logado, ele é redirecionado para a página principal.
Para o filtro, o usuário está logado se existir um atributo de escopo de sessão com o nome "usuario".
publicclassLoginFilterimplementsFilter{publicvoidinit(FilterConfigfilterConfig)throwsServletException{}publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{HttpServletRequesthttpRequest=(HttpServletRequest)request;HttpSessionsession=httpRequest.getSession(false);Stringuri=httpRequest.getRequestURI();Stringredirect=null;// Se a sessão for nula, ou se não houver usuário na sessão...if(session==null||session.getAttribute("usuario")==null){// Se o usuário estiver tentando acessar alguma página dentro do diretório restrito...if(uri.contains("/restrito")){// ... redirecione-o para a página de login.redirect="/Contexto/login.xhtml";}}elseif(uri.endsWith("login.xhtml")){redirect="/Contexto/restrito/principal.xhtml";}if(redirect!=null){((HttpServletResponse)response).sendRedirect(redirect);}else{chain.doFilter(request,response);}}publicvoiddestroy(){}}
L
leorsilva
como a apicação não tão grande e pesada vou utilizar essa solução com filtro que vejo como mais simples e prática de utilizar… obrigado pelo esclarecimento.