Dúvida - Servlet

Olá, quero saber como posso utilizar um servlet para implementar parte da segurança em uma aplicação web.
Um abraço, muito obrigado. :wink:

Olá Marcio,

Como assim ?

Bom imagino que tu queira usar um filtro que verifica se o usuário está logado e se tem permissão para acessar uma pasta dentro da tua aplicação.


package com.appWeb.br.filtro;

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.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import com.appWeb.br.bean.Usuario;

public class Filtro implements Filter {

	public void destroy() {
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// cast de ServletRequest para HttpServletRequest
		HttpSession session = ((HttpServletRequest) request).getSession();

		Usuario usuario = (Usuario) session.getAttribute("usuario");

		HttpServletRequest reqs = (HttpServletRequest) request;

		System.out.println(reqs.getUserPrincipal());

		if (usuario != null) {
			chain.doFilter(request, response);
		} else {
			RequestDispatcher view = request.getRequestDispatcher("/def.jsp");
			view.forward(request, response);
		}

	}

	public void init(FilterConfig fConfig) throws ServletException {

	}

}



no web.xml você indica o diretório que você vai filtrar as solicitações

<filter-mapping> <filter-name>Filtro</filter-name> <url-pattern>/adm/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping>

[]'s

Servlet não é recomendado para tratar autorizações. É muito melhor usar o Filter com o exemplo do MaiqueL