Spring Security – Como validar se o usuário está realmente autenticado

E ai galera, hoje estava fazendo meu TCC e precisei fazer uma validação no JSF para ver se o usuario estava logado, ai dando uma olhada nos métodos que o spring nos disponibiliza, achei o seguinte método:

SecurityContextHolder.getContext().getAuthentication().isAuthenticated();

A princípio achei que os meus problemas estavam solucionados, porém, quando nenhum usuário se autenticou ele continua retornando true…. pesquisando descobri que ele considera que existe alguém logado do tipo Anonymous … ¬¬

então para termos um método que funciona realmente temos que fazer da seguinte maneira:

public void isAuthenticated(){
      Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
     return authentication != null && !(authentication instanceof AnonymousAuthenticationToken) && authentication.isAuthenticated();
}

Porém não sei se é a melhor maneira, pelo menos funciona 😀

Fonte: StackOverflow – noushy

Advertisements

About Gustavo Amaro

+ Formado em Tecnologia e Análise de Sistemas + MBA em Desenvolvimento de Aplicações JAVA – SOA

Posted on 7 de Novembro de 2013, in Java, Spring, Spring Security and tagged , , , , , , , , , , , , . Bookmark the permalink. Deixe um comentário.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: