package br.com.doctors.interceptors; import javax.servlet.http.HttpServletRequest; import br.com.caelum.vraptor.*; import br.com.caelum.vraptor.core.InterceptorStack; import br.com.caelum.vraptor.interceptor.Interceptor; import br.com.caelum.vraptor.ioc.RequestScoped; import br.com.caelum.vraptor.resource.ResourceMethod; import br.com.doctors.dao.administracao.PerfilUsuarioDao; import br.com.doctors.modelo.administracao.PerfilUsuario; import br.com.doctors.util.UserSession; //@Deprecated ?? @Intercepts @RequestScoped public class UsuarioInterceptor implements Interceptor { private HttpServletRequest request; private Result result; private UserSession userSession; private PerfilUsuarioDao dao; public UsuarioInterceptor(HttpServletRequest request, Result result, UserSession userSession, PerfilUsuarioDao dao ) { this.request = request; this.result = result; this.userSession = userSession; this.dao = dao; } @Override public boolean accepts(ResourceMethod method) { return true; } @Override public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException { if (naoTemUsuarioLogado()){ PerfilUsuario usuario = dao.carrega(request.getUserPrincipal().getName()) ; userSession.carregaUsuario(usuario); System.out.printf("Adicionando usuario [%s] a sessao.\n", usuario); System.out.println(userSession.getUsuario()); } else { // System.out.println("Interceptando -->" + request.getUserPrincipal()); if (!userSession.hasUsuario()){ // System.out.println("SEM USUARIO NA SESS�O"); } else { System.out.println("USUARIO:" + userSession.getUsuario()); } } stack.next(method, resourceInstance); } private boolean naoTemUsuarioLogado() { return request.getUserPrincipal() != null && !userSession.hasUsuario(); } }