Olá, quero saber como posso utilizar um servlet para implementar parte da segurança em uma aplicação web.
Um abraço, muito obrigado.
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