Ir para conteúdo
RSN

Servlet Filter

Recommended Posts

Boa noite,
Estou utilizando filter para filtrar as requisições porém está permitindo acessar as páginas mesmo sem o usuário estar logado.

package filter;
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import beans.Usuario;
import dao.DaoUsuario;

@WebFilter(urlPatterns={"/*"})
public class FilterAutenticacao implements Filter{

//faz alguma coisa quando a aplicação é derrubada
@Override
public void destroy() {
	
}

//intercepta todas as requisições
@Override
public void doFilter(ServletRequest request, ServletResponse response,
		FilterChain chain) throws IOException, ServletException {
	
		HttpServletRequest req = (HttpServletRequest) request;
		HttpSession session = req.getSession();
		
		String urlParaAutenticar = req.getServletPath();	
		// retorna null caso não esteja logado
	    Usuario usuario = (Usuario) session.getAttribute("usuario");
	    
	    if (usuario == null && !urlParaAutenticar.equalsIgnoreCase("/pages/ServletAutenticacao")){ // usuário não logado
	    	RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp?url="+urlParaAutenticar);
	    	dispatcher.forward(request, response);
	    	return;// para o processo para redirecionar
	    }
 	
		// executa as ações do request e response
		chain.doFilter(request, response);
	
}

// executa alguma coisa quando a aplicação é iniciada
@Override
public void init(FilterConfig arg0) throws ServletException {
	
}
}

package servlet;

import java.io.IOException;
import java.net.InetAddress;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import dao.DaoLogin;
import dao.DaoOcorrenciaAcesso;
import beans.OcorrenciaAcesso;
import beans.Usuario;

@WebServlet("/ServletAutenticacao")
public class ServletAutenticacao extends HttpServlet {
private static final long serialVersionUID = 1L;

private DaoLogin daoLogin = new DaoLogin();

public ServletAutenticacao() {
	super();
}

protected void doGet(HttpServletRequest request,
		HttpServletResponse response) throws ServletException, IOException {
	
	if(Boolean.parseBoolean(request.getParameter("deslogar"))){
		//adicionar usuario logado na sessao
		HttpServletRequest req = (HttpServletRequest) request;
		HttpSession session = req.getSession();
		session.invalidate();
		//redireciona para login novamente
		response.sendRedirect("index.jsp");
	}
}

protected void doPost(HttpServletRequest request,
		HttpServletResponse response) throws ServletException, IOException {

	String login = request.getParameter("login");
	String senha = request.getParameter("senha");
	String ipDaMaquina = InetAddress.getLocalHost().getHostAddress();
    //System.out.println(ipDaMaquina);
        //nome da maquina.
    String nomeDaMaquina = InetAddress.getLocalHost().getHostName();
    //System.out.println(nomeDaMaquina);

	String url = request.getParameter("url");

	// neste momento pode ser feito uma validação no banco de dados
	try {
		if (login != null && !login.isEmpty() && senha != null
				&& !senha.isEmpty()) {
			if (daoLogin.validarLogin(login, senha)) {
			// se o login foi bem sucedido

			Usuario usuario = new Usuario();
			usuario.setLogin(login);
			usuario.setSenha(senha);
			
			OcorrenciaAcesso ocorrenciaAcesso = new OcorrenciaAcesso();
			ocorrenciaAcesso.setLogin(login);
			ocorrenciaAcesso.setIpDaMaquina(ipDaMaquina);
			ocorrenciaAcesso.setNomeDaMaquina(nomeDaMaquina);
			
			DaoOcorrenciaAcesso daoOcorrenciaAcesso = new DaoOcorrenciaAcesso();
			
			daoOcorrenciaAcesso.salvarOcorrenciaAcesso(ocorrenciaAcesso);
			

			// adiciona usuário logado na sessão
			HttpServletRequest req = (HttpServletRequest) request;
			HttpSession session = req.getSession();
			session.setAttribute("login", usuario);


			// redireciona para o sistema e autoriza
			RequestDispatcher dispatcher = request
					.getRequestDispatcher("pages/usuario.jsp");
			dispatcher.forward(request, response);
			
			//gravar log de acesso
			
			
			
			
			} else {// acesso negado
				RequestDispatcher dispatcher = request
						.getRequestDispatcher("acessonegado.jsp");
				dispatcher.forward(request, response);
			}

		} else {// se o login falhou
				// redireciona para login novamente
			RequestDispatcher dispatcher = request
					.getRequestDispatcher("/index.jsp");
			dispatcher.forward(request, response);
		}

	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

}
}

package servlet;

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.imageio.ImageIO;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import javax.xml.bind.DatatypeConverter;

import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.tomcat.util.codec.binary.Base64;

import beans.Ocorrencia;
import beans.Usuario;
import dao.DaoUsuario;

/**

Servlet implementation class ServletUsuario
*/
@WebServlet("/salvarUsuario")
public class ServletUsuario extends HttpServlet {
private static final long serialVersionUID = 1L;

private DaoUsuario daoUsuario = new DaoUsuario();

Ocorrencia ocorrencia = new Ocorrencia();

public ServletUsuario() {
super();

}
private String acaoGet;
private String sessionUsuario;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

 try {
 	

 	String acao = request.getParameter("acao")  != null ? request.getParameter("acao"): "listartodos";
 	String user = request.getParameter("user");
 	acaoGet = acao; 

 	if (acao != null && acao.equalsIgnoreCase("listartodos"))

 	{

 		RequestDispatcher view = request
 				.getRequestDispatcher("/pages/usuario.jsp");
 		request.setAttribute("usuarios", daoUsuario.listar());
 		view.forward(request, response);

 	}

 	else if (acao != null && acao.equalsIgnoreCase("delete")
 			&& user != null) {
 		daoUsuario.delete(user);
 		request.setAttribute("msg",  "Usuário excluído com Sucesso!");
 		//Tipo de mensagem
 		request.setAttribute("tipo", "success");
 		// daoUsuario.salvarOcorrencia(ocorrencia);
 		// daoUsuario.deleteOcorrencia(ocorrencia);
 		daoUsuario.acaoPagina(acaoGet);
 		daoUsuario.recuperarID();
 		daoUsuario.recuperarNome();
 		daoUsuario.recuperarUsuario(sessionUsuario);
 		daoUsuario.salvarOcorrencia(ocorrencia);
 		RequestDispatcher view = request
 				.getRequestDispatcher("/pages/usuario.jsp");
 		request.setAttribute("usuarios", daoUsuario.listar());
 		view.forward(request, response);

 	} else if (acao != null && acao.equalsIgnoreCase("editar")
 			&& user != null) {
 		Usuario usuario = daoUsuario.consultar(user);
 		RequestDispatcher view = request
 				.getRequestDispatcher("/pages/usuario.jsp");
 		request.setAttribute("user", usuario);
 		view.forward(request, response);

 	} else if (acao != null && acao.equalsIgnoreCase("ocorrencia")) {
 		RequestDispatcher view = request
 				.getRequestDispatcher("/pages/ocorrencia.jsp");
 		request.setAttribute("ocorrencias",
 				daoUsuario.listarOcorrencia(user));
 		view.forward(request, response);
 		
 	}

 } catch (Exception e) {
 	e.printStackTrace();

 }
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

 String acao = ("SalvarUsuario");
 String usuarioSessao = request.getParameter("usuarioSessao");
 sessionUsuario = usuarioSessao;

 boolean podeInserir = true;
 String msg = null;

 String id = request.getParameter("id");
 String login = request.getParameter("login");
 String nome = request.getParameter("nome");
 String senha = request.getParameter("senha");

 Usuario usuario = new Usuario();
 usuario.setId(!id.isEmpty() ? Long.parseLong(id) : null);
 usuario.setLogin(login);
 usuario.setNome(nome);
 usuario.setSenha(senha);

 Ocorrencia ocorrencia = new Ocorrencia();

 try {
 	if (id == null || id.isEmpty() && podeInserir) {
 		daoUsuario.salvar(usuario);
 		//Mensagem salvo com sucesso
 		request.setAttribute("msg",  "Usuário salvo com Sucesso!");
 		//Tipo de mensagem
 		request.setAttribute("tipo", "success");
 		daoUsuario.acaoPagina(acao);
 		daoUsuario.recuperarID();
 		daoUsuario.recuperarNome();
 		daoUsuario.recuperarUsuario(usuarioSessao);
 		daoUsuario.salvarOcorrencia(ocorrencia);
 		RequestDispatcher view = request
 				.getRequestDispatcher("/pages/usuario.jsp");
 		request.setAttribute("usuarios", daoUsuario.listar());
 		view.forward(request, response);

 	}
 	if (id != null && !id.isEmpty()) {
 		daoUsuario.atualizar(usuario);
 		request.setAttribute("msg",  "Usuário editado com Sucesso!");
 		//Tipo de mensagem
 		request.setAttribute("tipo", "success");
 		daoUsuario.acaoPagina(acaoGet);
 		daoUsuario.recuperarID();
 		daoUsuario.recuperarNome();
 		daoUsuario.recuperarUsuario(usuarioSessao);
 		daoUsuario.salvarOcorrencia(ocorrencia);
 		RequestDispatcher view = request
 				.getRequestDispatcher("/pages/usuario.jsp");
 		request.setAttribute("usuarios", daoUsuario.listar());
 		view.forward(request, response);

 	}else{
        
 		RequestDispatcher view = request
 				.getRequestDispatcher("/pages/usuario.jsp");
 		request.setAttribute("usuarios", daoUsuario.listar());

 	}

 } catch (Exception e) {
 	e.printStackTrace();
 }
}

}
   

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Jack Oliveira
      Ola pessoal boa tarde
      estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso
       
      Este é o codigo 
      <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>  
    • Por Rengavitp
      Boa noite pessoal!
       
      Estou fazendo um projeto web com spring boot e é a primeira vez que lido com imagens. Minha idéia é salvar imagens em uma pasta e depois recuperar essa imagem e mostrar, mas o problema que estou enfrentando é o seguinte, seu eu envio para o src do projeto na pasta imagens, eu até consigo acessar as imagens, mas preciso atualizar o projeto na IDE (isso vai acontecer em produção?) eu tentei salvar em uma pasta fora do source do projeto mas ai não consigo acessar. como devo fazer? fiz várias pesquisas, mas nenhuma me ajudou.
       
      Desde já agradeço.
    • Por Rengavitp
      Bom dia pessoal!

      Estou com o seguinte problema, tenho uma aplicação que funciona perfeitamente rodando na minha IDE (Spring Tool Suite) mas ao gerar o arquivo war e subir a aplicação no tom cat ele não funciona, mas apenas erro 404, abri o war e todos os arquivo estão lá, já tem seguir tudo quando e tutorial com problemas semelhantes mas nenhum resolveu. Abaixo mais informações,.

      Versão do java na aplicacao 11
      Versão do jva no servidor 11
      Versão do tomcat no servidor 8.5.55
       
      minha classe principal
      package br.com.masterplastfitas; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MasterApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MasterApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MasterApplication.class); } } meu pom.xml
      <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>masterplast</groupId> <artifactId>Master</artifactId> <version>2.0</version> <packaging>war</packaging> <name>Master</name> <description>Aplicação web </description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> </dependency> <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.4</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.0</version> </dependency> </dependencies> <build> <plugins> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> --> </plugins> </build> </project>  
    • Por Stephhany909
      While trying to persist an object with an attribute of type Point, defined as follows:
       
      @Entity @Table(name = "event") public class Event { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private long id; @Column(columnDefinition = "POINT") private Point coordinate; } I'm getting the error Data truncation: Cannot get geometry object from data you send to the GEOMETRY field.
      The corresponding database table is defined as follows:
       
      create table event ( id bigint not null auto_increment, coordinate POINT, primary key (id) ) engine= InnoDB; What am I missing?
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.