0
点赞
收藏
分享

微信扫一扫

Spring Security授权_RBAC

Spring Security授权_RBAC_sed
授权即认证通过后,系统给用户赋予一定的权限,用户只能根据权限访问系统中的某些资源。RBAC是业界普遍采用的授权方式,它有两种解释:

Role-Based Access Control

基于角色的访问控制,即按角色进行授权。比如在企业管理系统中,主体角色为总经理可以查询企业运营报表。逻辑为:

if(主体.hasRole("总经理角色")){
查询运营报表
}

如果查询企业运营报表的角色变化为总经理和股东,此时就需要修改判断逻辑代码:

if(主体.hasRole("总经理角色") ||  .hasRole("股东角色")){
查询运营报表
}

此时我们可以发现,当需要修改角色的权限时就需要修改授权的相关代码,系统可扩展性差。

Resource-Based Access Control

基于资源的访问控制,即按资源(或权限)进行授权。比如在企业管理系统中,用户必须 具有查询报表权限才可以查询企业运营报表。逻辑为:

if(主体.hasPermission("查询报表权限")){
查询运营报表
}

这样在系统设计时就已经定义好查询报表的权限标识,即使查询报表所需要的角色变化为总经理和股东也不需要修改授权代码,系统可扩展性强。该授权方式更加常用。


举报

相关推荐

0 条评论