package br.edu.utfpr.spring.mvc.seguranca;
import java.util.Optional;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Component;
import br.edu.utfpr.spring.mvc.model.Usuario;
@Component
public class UsuarioLogadoSpring implements UsuarioLogado {
@Override
public Optional<Usuario> get() {
SecurityContext context = SecurityContextHolder.getContext();
if(context != null){
Authentication authentication = context.getAuthentication();
if(authentication != null
&& (authentication.getPrincipal() instanceof UserDetails)){
return Optional.of((Usuario)authentication.getPrincipal());
}
}
return Optional.empty();
}
}