Autenticacao com Filter+Session+Servlet

Seguinte pessoal estou criando uma Autenticacao Simples com Filter+Session+Servlet.

Alguem poderia me ajudar a resolver este problema?

Quando coloco direto na URL ex:

http://localhost:8080/intelectusweb/ExibirTitulos.do

ele aparece:

java.lang.NullPointerException
	br.com.intelectussc.filtros.IntelectusFiltros.doFilter(IntelectusFiltros.java:39)

Gostaria que aparece tambem a página de “errologin.jsp”. Pois quando informo o usuario e senha no form do index.html funciona certinho.

Objetivo: É para ninguem acessar as opcoes do sistema direto, tem que obrigatoriamente informar usuario e senha.


package br.com.intelectussc.filtros;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.swing.text.AbstractDocument.Content;
 
 public class IntelectusFiltros implements Filter {
     
    private FilterConfig filterConfig;
 
     public void init(FilterConfig filterConfig) {
    	 System.out.println("Instancia Criada para:" + getClass().getName());
    	 this.filterConfig = filterConfig;

      }
     
     public IntelectusFiltros(){}
     public void destroy() {}
     
 
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
         throws IOException, ServletException {
    	 
    	  
    	 HttpSession session = ((HttpServletRequest) request).getSession();
    	 ServletContext context = filterConfig.getServletContext();
    	 
    	 String usuario = request.getParameter("usuario");
    	 
    	 if(session.isNew()){    	
             session.setAttribute("usuario",usuario);
         }
    	 
    	 context.log("doFilter Requisitado em: " + filterConfig.getFilterName()+"Data: "+(new java.util.Date()));
    	 context.log("Session ID: " + session.getId());
    	 context.log("Usuario da Session: " + session.getAttribute("usuario"));
    	     	   
    	 if(session.getAttribute("usuario").equals("") || session.getAttribute("usuario")== null){
    		 RequestDispatcher dispatcher = request.getRequestDispatcher("errologin.jsp");
             dispatcher.forward(request, response); 
             
    	 }else{   		 
    	   chain.doFilter(request, response);              
    	} 	   	      	
    }
 }

Obrigado

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:

Ei cara existe um erro de sintaquis no trecho do seu codigo !!!

HttpSession session = ((HttpServletRequest) request).getSession();

HttpSession session = ((HttpServletRequest) request.getSession()); [/quote]

[quote=renatopvieiraPJ]Seguinte pessoal estou criando uma Autenticacao Simples com Filter+Session+Servlet.

Alguem poderia me ajudar a resolver este problema?

Quando coloco direto na URL ex:

http://localhost:8080/intelectusweb/ExibirTitulos.do

ele aparece:

java.lang.NullPointerException
	br.com.intelectussc.filtros.IntelectusFiltros.doFilter(IntelectusFiltros.java:39)

Gostaria que aparece tambem a página de “errologin.jsp”. Pois quando informo o usuario e senha no form do index.html funciona certinho.

Objetivo: É para ninguem acessar as opcoes do sistema direto, tem que obrigatoriamente informar usuario e senha.


package br.com.intelectussc.filtros;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.swing.text.AbstractDocument.Content;
 
 public class IntelectusFiltros implements Filter {
     
    private FilterConfig filterConfig;
 
     public void init(FilterConfig filterConfig) {
    	 System.out.println("Instancia Criada para:" + getClass().getName());
    	 this.filterConfig = filterConfig;

      }
     
     public IntelectusFiltros(){}
     public void destroy() {}
     
 
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
         throws IOException, ServletException {
    	 
    	  
    	 HttpSession session = ((HttpServletRequest) request).getSession();
    	 ServletContext context = filterConfig.getServletContext();
    	 
    	 String usuario = request.getParameter("usuario");
    	 
    	 if(session.isNew()){    	
             session.setAttribute("usuario",usuario);
         }
    	 
    	 context.log("doFilter Requisitado em: " + filterConfig.getFilterName()+"Data: "+(new java.util.Date()));
    	 context.log("Session ID: " + session.getId());
    	 context.log("Usuario da Session: " + session.getAttribute("usuario"));
    	     	   
    	 if(session.getAttribute("usuario").equals("") || session.getAttribute("usuario")== null){
    		 RequestDispatcher dispatcher = request.getRequestDispatcher("errologin.jsp");
             dispatcher.forward(request, response); 
             
    	 }else{   		 
    	   chain.doFilter(request, response);              
    	} 	   	      	
    }
 }

Obrigado

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:[/quote]

De acordo com a exceção, o erro ocorre na linha 39

Então, provavelmente seu session.getAttribute(“usuario”) está retornando um null, e você está dando um equals() num objeto nulo…

Coloque o seu session.getAttribute(“usuario”)== null antes do session.getAttribute(“usuario”).equals("")! :wink:

[]'s