我正在学习Spring Security ,无法理解身份验证和主体之间的区别。我知道下面的代码没有逻辑连接,但据我所知,身份验证和主体都为我们提供了从当前登录的用户获取数据的可能性。
@PreFilter("filterObject.owner == authentication.name")
@PreAuthorize("hasRole('ADMIN') or principal.userId == #id")
我正在学习Spring Security ,无法理解身份验证和主体之间的区别。我知道下面的代码没有逻辑连接,但据我所知,身份验证和主体都为我们提供了从当前登录的用户获取数据的可能性。
@PreFilter("filterObject.owner == authentication.name")
@PreAuthorize("hasRole('ADMIN') or principal.userId == #id")
1条答案
按热度按时间mu0hgdu01#
主体表示已登录的用户。Spring的
Authentication
接口扩展了Principal
接口,所以身份验证is a
校长。在对用户进行身份验证之前,身份验证可以表示身份验证请求的令牌。
在用户经过身份验证后,它可以提供有关主体的额外信息,例如通过
getAuthorities(..)
在成功的身份验证之后,您可以获得主体已被授予的权限。