Eu coloquei o seguinte servlet filter
Code:
public void doFilter(ServletRequest srequest, ServletResponse sresp,
FilterChain chain) throws IOException, ServletException {
logger.info("Entrando em LoginFilter");
HttpServletRequest request = (HttpServletRequest) srequest;
HttpServletResponse response = (HttpServletResponse) sresp;
if (request.getSession().getAttribute("usuario")==null) { //sessão não autenticada
String reqURI = request.getRequestURI();
logger.info("RequestURI: "+reqURI);
//request para área restrita
if (!(reqURI.equals("/Protosys/")||(reqURI.equals("/Protosys/login.jsp")))) {
RequestDispatcher rd = config.getServletContext().getRequestDispatcher(login);
rd.forward(request,response);
}
}
chain.doFilter(request,response);
}
Só que quando eu chamo a minha action, ele passa por esse filter mas depois dá o seguinte erro:
Code:
org.mentawai.core.ConsequenceException: java.lang.IllegalStateException: Cannot forward after response has been committed
org.mentawai.core.Forward.forward(Forward.java:110)
org.mentawai.core.Forward.execute(Forward.java:94)
org.mentawai.core.Controller.service(Controller.java:192)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
control.filter.LoginFilter.doFilter(LoginFilter.java:45)
como arrumo isso?
valeu,
Juliano.