代码通过Subject来进行认证和授权等操作,而Subject又将这个操作委托给SecurityManager,我们将要验证的数据源注入到Realm中,SecurityManager在Realm中查询数据进行验证。
授权问题:
1.隐式角色
在使用的过程中,我们直接判断相应的Subject是否是某一种角色,进而判断该Subject是否具备某种权限,subject.hasrole(role)
2.显示角色
显式角色是一种基于资源的访问权限控制,需要我们自己手动维护用户-角色、角色-权限之间的关系。
定义角色对应的权限,权限的定义格式一般是资源:操作。
#单个资源多个权限
role1 = user:create,user:update
判断:subject.isPermittedAll("user:delete", "user:update")