Controlar Sessao com JSF 2.1 + Primefaces

3 respostas
C

Alguem tem algum exemplo para controlar sessao de usario (login) com jsf 2.1
pq com filtro assim nao faz o redirect.
da um erro no browse de redirecionamento incorreto

public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;  
        HttpSession session = req.getSession();  
        String chave = (String)session.getAttribute("user");  
  
        if (chave != null) {  
            chain.doFilter(request, response);  
        } else {  
            HttpServletResponse res = (HttpServletResponse) response;  
            res.sendRedirect("faces/index.xhtml");  
            //chain.doFilter(request, response);
        }  
  
   }

meu web.xml

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>bluesky</param-value>
    </context-param>
    <filter>
        <filter-name>Filtro</filter-name>
        <filter-class>bean.Filtro</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>Filtro</filter-name>
        <url-pattern>/faces/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

3 Respostas

Hebert_Coelho

Nesse exemplo tem um modelo de como criar o Filter: Autenticação de Usuários (Filter/Servlet).

Mas uma coisa que eu notei é que vc comentou o //chain.doFilter(request, response);. Tenta descomentar.

R

kra busca um exemplo do próprio jsf 2 no qual vc não precisa mais definir o filtro no web.xml apenas por anotação.

ex:

@WebFilter(filterName = "filtro", urlPatterns = {"/faces/*"})
public class AutenticacaoSistema implements Filter {
...
}

quanto ao erro tenta mudar pra

res.sendRedirect("/faces/index.xhtml");
C

Aparece no Browser

Criado 13 de janeiro de 2012
Ultima resposta 16 de jan. de 2012
Respostas 3
Participantes 3