Shiro @RequiresPermissions是如何运转的

最近SpringBoot项目安全策略是采用比较流行的shiro框架,是我做的第一个springBoot项目,也是第一次使用shiro。

废话不多说,框架是公司大佬设计的:

Shiro @RequiresPermissions是如何运转的
在查看日志方法上面加了RequiresPermissions。那么只有当用户拥有这个sys:log:content字符串时才能访问此方法。
那怎么知道用户拥有这个字符串呢?????

Shiro @RequiresPermissions是如何运转的

自己必须定义一个方法 
继承抽象方法 org.apache.shiro.realm.AuthorizingRealm 实现其抽象类doGetAuthorizationInfo方法即可;这样框架就会取到用户权限列表。。。

然后在org.apache.shiro.realm.AuthorizingRealm

Shiro @RequiresPermissions是如何运转的

找到此方法 implies便是shiro权限校验的核心:

Shiro @RequiresPermissions是如何运转的

这段代码感觉思维真的不是我能想到的。。。虽然看起来很简单 大家有兴趣可以debug跟跟看。

还有用shiro的话一般会用到它的 登录认证 (Authentication)以及 权限验证(Authorization) 2个单词极其相似。。。 登录认证简称authc 权限验证简称authz