Boa tarde tenho o segundo interceptor.
@Intercepts
public class LoginInterceptor implements Interceptor {
private Result result;
private UsuarioSecurity usuarioSession;
@Autowired
private UsuarioRepository usuarioRepository;
public LoginInterceptor(Result result, UsuarioSecurity userSession,UsuarioRepository usuarioRepository) {
this.result = result;
this.usuarioSession = userSession;
this.usuarioRepository = usuarioRepository;
}
public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException {
if (usuarioSession.isAutenticado()) {
Acessos acesso = getAcesso(method);
if(!acesso.equals(Acessos.AUTENTICADO)){
Usuario usuario = usuarioRepository.load(usuarioSession.getUser().getId());
if(!usuario.getAcessos().contains(acesso)){
result.use(Results.http()).setStatusCode(403);
}
}
stack.next(method, resourceInstance);
} else {
result.redirectTo(PublicControler.class).login("logon");
}
}
public boolean accepts(ResourceMethod method) {
Acessos acesso = getAcesso(method);
return (acesso != Acessos.PUBLICO);
}
private Acessos getAcesso(ResourceMethod method){
Acessos acesso = Acessos.AUTENTICADO;
if(method.containsAnnotation(ControleAcesso.class)){
acesso = method.getMethod().getAnnotation(ControleAcesso.class).value();
}
if(acesso.equals(Acessos.AUTENTICADO)){
if(method.getResource().getType().isAnnotationPresent(ControleAcesso.class)){
acesso = method.getResource().getType().getAnnotation(ControleAcesso.class).value();
}
}
return acesso;
}
}
Na linha 28 onde direciono para minha pagina de login, queria passar outro parâmetro que seria a URL, para que depois que o usuário efetua-se o login eu direcionaria ele para pagina que ele requisitou antes do login.
Só que não encontrei como faço para pegar essa URL.
att