shiro系列8:授权源码解析
一、简介:
二、授权流程:
1、客户端调用 Subject.isPermitted(“code:insert”),判断当前用户是否有"code:insert"权限。
2、Subject门面对象接收到要被验证的权限信息"code:insert",并将其委托给securityManager中验证。
3、securityManager将验证请求再次委托给内部组件Authorizer去验证。
4、内部组件Authorizer又将其委托给了AuthorizingRealm去做。
5、AuthorizingRealm先将用户传入的权限解析成一个Permission对象。再调用isPermitted(principals,p)方法。
6、isPermitted的方法体中,调用我们自定义Realm重写的doGetAuthorizationInfo方法,获取我们从数据库中查询出来的权限信息。
7、最后将用户传入的权限,与我们从数据库中查出来的权限做比较。如果用户传入的权限在我们从数据库中查出来的权限中,则返回true,否则返回false。