Problema com Filtro de Login

2 respostas
chapolimCPT

Bom dia pessoal estou fazendo apenas um CRUD em JSP pra fixar o conhecimento mas empaquei em um Filtro que fiz pra validar a sessão do usuário. Se alguém puder ajudar ... agradeço.

Bem tenho esse Filtro.

public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain)
            throws IOException, ServletException {

        System.out.println("LoginFilter");
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;
        Object logged = req.getSession().getAttribute("islogged");
        String url = req.getSession().toString();
        System.out.println("URL = " + url);

        if (logged == null && !url.contains("logininvalid.jsp")) 
            res.sendRedirect("login.jsp");

            chain.doFilter(request, response);

        }
Meu web.xml
<filter>
        <filter-name>loginFilter</filter-name>
        <filter-class>webapp.servlet.filters.LoginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>loginFilter</filter-name>
        <url-pattern>/WebApp/*</url-pattern>
    </filter-mapping>
    <servlet>

O login está funcionando, porém quando o sistema inicia vai pra página principal, o filtro não direciona para a página de login.

2 Respostas

chapolimCPT

Acabei de testar assim novamente e não foi

if (1+1 == 2) res.sendRedirect("login.jsp");

Minha pilha de erro.

GRAVE: Exception starting filter LoginFilter java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:255) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3099) at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:916) at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:360) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.RuntimeException: Uncompilable source code - webapp.servlet.filters.LoginFilter is not abstract and does not override abstract method doFilter(javax.servlet.ServletRequest,javax.servlet.ServletResponse,javax.servlet.FilterChain) in javax.servlet.Filter at webapp.servlet.filters.LoginFilter.<clinit>(LoginFilter.java:25) ... 32 more

C

Chapolim,

Vc precisa setar o atributo “islogged” na sessão quando o usuario digitar a senha correta, caso contrario a aplicação nunca irá encontrar esse atributo.

Abç

Criado 25 de março de 2011
Ultima resposta 25 de mar. de 2011
Respostas 2
Participantes 2