Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • 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?
×

Informação importante

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