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

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

void activateUser(String username);


根据春季文件,

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

最佳答案

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


不完全是。可能是hasRole(“ ROLE_ANONYMOUS”),表示未经身份验证的用户。
还要注意,isFullyAuthenticted()与isAuthenticated()是不同的,因为前者需要显式身份验证,而后者则更不容易接受记住我身份的用户。但是,在大多数情况下,hasRole与实际角色一起使用,这至少意味着isAuthenticated()。

因此,区别在于第一行要求对用户进行显式身份验证(而不是“记住我”)。

09-25 21:37