Bom dia a todos.
Alguem sabe me dizer se eu posso utilizar mais de um filter dentro do web.xml, pois eu tenho este filter:
RichFaces Filter
richfaces
org.ajax4jsf.Filter
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
e agora preciso usar outro filter para trabalhar com o tempo de sessao, como abaixo:
10
FiltroSeguranca
br.com.inloc.sessao.FiltroSeguranca
<filter-mapping>
<filter-name>FiltroSeguranca</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Este FiltroSeguranca verifica se meu usuario da sessao esta nulo, se true, redireciona o sistema para a tela de login.
Quando eu coloco meus dois filter no web.xml da um erro na hora de executar o sistema.
erro = “Falha na construção”
Desde ja, valeu galera…
Sim é possivel.
Acredito que esteja dando erro por que está faltando a tag no filter do richfaces.
Achei o erro.
O problema nao é no meu web.xml e sim minha classe FiltroSeguranca eu estava implementando de forma errada da interfaces Filter, consegui resolver tambem esse problema e minha classe ficou assim:
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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class FiltroSeguranca implements Filter {
public void init(FilterConfig config) throws ServletException {
}
public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
HttpSession session = ((HttpServletRequest)req).getSession();
Usuario usuario = (Usuario)session.getAttribute("usuario");
if(usuario == null){
session.setAttribute("msg","Você não está logado no sistema!");
((HttpServletResponse)res).sendRedirect("forwardToJSF.jsp");
}else{
chain.doFilter(req, res);
}
}
public void destroy() {
}
}
Agora meu problema é outro quando eu executo meu sistema da um erro no meu navegador (mozila) com a seguinte mensagem “Redirecionamento incorreto”, dai eu comecei a debugar minha classe FiltroSeguranca e percebi que meu metodo doFilter() esta entrando num loop infinito ate entao dar o erro do navegador com a mensagem “Redirecionamento incorreto”.
Galera se alguem souber me ajudo fico grato. valeu d+.
vc precisa verificar duas coisas:
uma é se existe usuário logado e outra é se a página atual é a página de login. Eu chutaria que seu filtro
direciona para a página de login e depois verifica se tem alguém logado / direciona para a página de login e depois verifica se tem alguém logado / direciona para a página de login e depois verifica se tem alguém logado / …