Boa noite caros!
Não estou conseguindo fazer logout de uma aplicação com JSF. Ela redireciona para página de autenticação,
entretanto se acessar a pagina principal depois do logout ela permite o acesso sem pedir login de autenticação.
Para melhor entendimento, o código está abaixo:
public String logout()
{
/*
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
request.getSession().invalidate();*/
// Esse acima também não deu certo...
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext ec = fc.getExternalContext();
HttpSession session = (HttpSession)ec.getSession(false);
session.removeAttribute(this.login);
// Esse acima também não deu certo...
return "autenticar";
}
O filtro dinâmico funcional.
[code]
package filtro;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebFilter (servletNames={“Faces Servlet”})
public class controleDeAcesso implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
if (session.getAttribute("usuario") != null ||
req.getRequestURI().endsWith("autenticar.xhtml"))
{
chain.doFilter(request, response);
}
else
{
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("autenticar.xhtml");
}
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}[/code]
Página html.
<h:outputLink value="logout" action="usuarioBean.logout">
Alguém poderia me ajudar?
Muito obrigado,
Att,
André Vieira.