作为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()。
因此,区别在于第一行要求对用户进行显式身份验证(而不是“记住我”)。