【发布时间】:2017-10-31 00:44:25
【问题描述】:
如何检查用户在运行时是否具有分层角色?
我知道这个url授权解决方案@PreAuthorize("hasRole('ROLE_ADMIN')")
但是如果我必须检查角色,则在方法内?
例如:
ROLE_ADMIN > ROLE_USER > ROLE_GUEST
if (user.hasRole('ROLE_USER')){
do something;
}
在此示例中,如果用户具有 ROLE_ADMIN,则条件必须为真,因为在分层角色中 ROLE_ADMIN > ROLE_USER。
谢谢
【问题讨论】:
-
我不会写这段代码:if (user.hasRole('ROLE_USER') || user.hasRole('ROLE_ADMIN')){ do something },但前提是 (user.hasRole ('ROLE_USER')),只有最低角色
-
如果您的用户同时拥有 ROLE_ADMIN 和 ROLE_USER,则不必这样做
-
为什么需要方法内部的检查?为什么不使用
@PreAuthorize(您似乎认为这与基于 URL 的安全性无关)。
标签: java spring-security role hierarchical