Eu tenho um filtro, dá para imbutir um log lá dentro?
Outra coisa, tem alguma API especifica?
Abaixo o código:
public class MainFilter implements Filter {
private String user = "/faces/view/user/";
private String superUser = "/faces/view/superUser/";
private String admin = "/faces/view/admin/";
private String index = "/faces/view/index.jsp";
private String main = "/faces/view/user/main.jsp";
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest) request;
//HttpServletResponse hresp = (HttpServletResponse) response;
String requestUri = hreq.getRequestURI();
HttpSession session = hreq.getSession();
UsuarioVO usuarioVO = new UsuarioVO();
//pega o usuário da sessão
usuarioVO = (UsuarioVO)session.getAttribute("usuarioVO");
if ((usuarioVO == null) || (usuarioVO.getPendente() == 1)) {
RequestDispatcher rd = request.getRequestDispatcher(index);
rd.forward(request, response);
}
else if (requestUri.contains(user)) { //conteúdo visto por todos logados
chain.doFilter(request, response);
}
else if (requestUri.contains(superUser)) { //alteração de dados
if (usuarioVO.getTipo_usuario() == 1 || usuarioVO.getTipo_usuario() == 2) {
chain.doFilter(request, response);
}
else {
RequestDispatcher rd = request.getRequestDispatcher(main);
rd.forward(request, response);
}
}
else if (requestUri.contains(admin)) { //admin
if (usuarioVO.getTipo_usuario() == 2) {
chain.doFilter(request, response);
}
else {
RequestDispatcher rd = request.getRequestDispatcher(main);
rd.forward(request, response);
}
}
else {
RequestDispatcher rd = request.getRequestDispatcher(index);
rd.forward(request, response);
}
}
}