Boa Tarde:
alguem tem um exemplo de como faço para criar uma página de login com jsf, estou seguindo o exemplo abaixo, mais quando tento acessar qualquer página antes de fazer o login ele não restringe a página.
http://crisaltmann.wordpress.com/category/tutorial/
gostaria que ao acessa qualquer página sem permissão automaticamente redirecionava para o página login.jsf
obrigado desde ja!
Aqui mostra como fazer por filter: Aplicação Web Completa Tomcat JSF Primefaces JPA Hibernate
E garanto que funciona. [=
O BalusC respondeu essa dúvida na StackOverflow:
[quote=Arthur F. Ferreira]O BalusC respondeu essa dúvida na StackOverflow:
http://stackoverflow.com/questions/8480100/how-implement-a-login-filter-in-jsf[/quote]Que é a mesma abordagem citada no exemplo acima. [=
[quote=jjander.cunha]Boa Tarde:
alguem tem um exemplo de como faço para criar uma página de login com jsf, estou seguindo o exemplo abaixo, mais quando tento acessar qualquer página antes de fazer o login ele não restringe a página.
http://crisaltmann.wordpress.com/category/tutorial/
gostaria que ao acessa qualquer página sem permissão automaticamente redirecionava para o página login.jsf
obrigado desde ja![/quote]
Essa seria a ideia…
@WebFilter(filterName="AuthorizationFilter",urlPatterns="/pages/*")
public class AuthorizationFilter implements Filter{
FilterConfig config = null;
ServletContext servletContext = null;
//Construtor
public AuthorizationFilter(){
}
public void init(FilterConfig filterConfig) throws ServletException{
config = filterConfig;
servletContext = config.getServletContext();
}
/**
* Se o usuário não está em uma sessãp ele é redirecionado
* para a página de login.
*/
public void doFilter(ServletRequest request,ServletResponse response,
FilterChain chain) throws IOException, ServletException{
HttpServletRequest httpRequest = (HttpServletRequest)request;
HttpServletResponse httpResponse = (HttpServletResponse)response;
HttpSession session = httpRequest.getSession();
//String requestPath = httpRequest.getPathInfo();
Sessao sessao = (Sessao)session.getAttribute(Constantes.SESSION_KEY);
//Se o usuario nao esta na sessao, nao estao logado...
if(sessao == null){
//Redireciona p/ pagina de login
httpResponse.sendRedirect(httpRequest.getContextPath() + Constantes.LOGIN_VIEW);
}
else{
chain.doFilter(request,response);
}
//Utils.log(servletContext, "Saindo do Filtro");
}
public void destroy(){
}
}