【问题标题】:Using Spring Security Annotations isFullyAuthenticated v/s hasRole使用 Spring Security Annotations isFullyAuthenticated v/s hasRole
【发布时间】:2015-05-02 01:22:46
【问题描述】:

作为 Spring 安全注释的新手,我无法理解以下两行之间的真正区别。这是否意味着 hasRole 隐式检查身份验证?

-    @PreAuthorize("isFullyAuthenticated() and hasRole('activateUser')")
+    @PreAuthorize("hasRole('activateUser')")

void activateUser(String username);

根据 spring 文档,

isFullyAuthenticated()  Returns true if the user is not an anonymous or a remember-me user

【问题讨论】:

    标签: java spring spring-mvc spring-security spring-annotations


    【解决方案1】:

    这是否意味着 hasRole 隐式检查身份验证?

    绝对不是。它可能是 hasRole("ROLE_ANONYMOUS") ,这意味着未经身份验证的用户。 还要注意 isFullyAuthenticted() 与 isAuthenticated() 不同,因为前者需要显式身份验证,而后者更宽松地接受记住我身份验证的用户。但在大多数情况下,hasRole 与实际角色一起使用,这至少意味着 isAuthenticated()。

    所以不同之处在于第一行要求用户经过明确的身份验证(不是记住我)。

    【讨论】:

      猜你喜欢
      • 2015-08-27
      • 1970-01-01
      • 2013-10-07
      • 2017-06-16
      • 2021-04-07
      • 2015-12-09
      • 2011-03-31
      相关资源
      最近更新 更多