Spring Security:ROLE_ANONYMOUS和IS_AUTHENTICATED_ANONYMOUSLY之间的区别

时间:2011-03-30 06:11:55

标签: spring-security

Spring Security在ROLE_ANONYMOUS和IS_AUTHENTICATED_ANONYMOUSLY之间有什么区别。

换句话说,RoleVoter和AuthenticatedVoter有何不同?

1 个答案:

答案 0 :(得分:9)

来自spring security documentation的相关部分,

  

您经常会看到ROLE_ANONYMOUS   上面拦截器中的属性   配置替换为   IS_AUTHENTICATED_ANONYMOUSLY,这是   当有效时同样的事情   定义访问控制。这是个   使用的例子   我们将看到AuthenticatedVoter   在授权章节中。它用   一个AuthenticationTrustResolver到   处理这个特定的配置   属性和授予访问权限   匿名用户。该   AuthenticatedVoter方法更多   功能强大,因为它允许你   区分匿名,   记住我,并完全认证   用户。如果你不需要这个   功能虽然,但你可以   坚持使用ROLE_ANONYMOUS   由Spring Security处理   标准RoleVoter。

此外,来自Luke对相关jira issue的评论,

  

匿名访问问题部分存在   历史。匿名令牌是   最初介绍(即   ROLE_ANONYMOUS)哪个允许你   使用“安全默认”   具体的配置   例外。在稍后阶段   AuthenticatedVoter被介绍给了   允许您区分   不同级别的身份验证 -   厌恶,记住我和   完全认证(即登录   在本届会议期间)。我有   为匿名者增加了一点额外的东西   章解释说他们是   除非你需要额外费用   功能提供的   AuthenticatedVoter使用。