使用spring security时如何获取认证信息?

Tom*_*Tom 3 spring-security

在页面上我使用标签: security:authorize ifAnyGranted="ROLE_USER,ROLE_ADMIN" ...它有效。但在服务器端:我使用SecurityContextHolder.getContext().getAuthentication().isAuthenticated(),它总是正确的。当我没有登录时,系统将anonymousUser作为登录用户。

我怎样才能避免这种情况?

小智 5

SecurityContextHolder.getContext().getAuthentication().isAuthenticated() 几乎总是返回 true。用这个

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return authentication != null && !(authentication instanceof AnonymousAuthenticationToken) && authentication.isAuthenticated();
Run Code Online (Sandbox Code Playgroud)