Spring Security:ROLE_ANONYMOUS和IS_AUTHENTICATED_ANONYMOUSLY之间的区别

13
在Spring Security中,ROLE_ANONYMOUS和IS_AUTHENTICATED_ANONYMOUSLY之间有什么区别?换句话说,RoleVoter和AuthenticatedVoter有何不同?
1个回答

12

根据Spring Security文档中相关章节,通常在上述拦截器配置中会看到用IS_AUTHENTICATED_ANONYMOUSLY替换ROLE_ANONYMOUS属性,这实际上是定义访问控制时相同的。这是AuthenticatedVoter的一个例子,我们将在授权章节中介绍它。它使用AuthenticationTrustResolver来处理此特定配置属性并授予匿名用户访问权限。AuthenticatedVoter方法更强大,因为它允许您区分匿名、记住我和完全认证的用户。如果您不需要此功能,则可以使用ROLE_ANONYMOUS,由Spring Security的标准RoleVoter处理。

此外,在相关的jira问题的Luke评论中,

匿名访问问题在一定程度上具有历史性。最初引入了匿名令牌(即ROLE_ANONYMOUS),它允许您在具体异常情况下使用“默认安全”配置。后来,AuthenticatedVoter被引入以区分不同级别的身份验证——匿名、记住我和完全认证(即在当前会话期间已登录)。我在匿名章节中添加了额外的内容以解释它们是相同的,除非您需要AuthenticatedVoter提供的额外功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接