权限控制是一个比较重要的知识点。
先讲一下相关理论知识,如图:

每次发送请求都会调用到controller,而controller又会调用subject,每个用户对应一个subject(subject包含了session),且subject会负责和shiro交互,securityManager管理了Realm,而Realm可以进行登录验证,可以对用户操作付权限。
通过SpringBoot做权限控制的步骤如下:
1、首先要引入相应的包。
除了要引入其他基本功能的包,还要引入和权限控制相关的包,pom代码如下:
2、自定义Realm 继承自AuthorizingRealm:
3、密码校验器:
4、新建权限管理类:
这一步首先需要定义一个方法返回ShiroFilterFactoryBean,ShiroFilterFactoryBean对象要设置登录的URL,设置哪些路径是可以匿名访问,哪些是需要权限访问的。
然后配置核心安全事务管理器,返回SecurityManager对象:
设置密码比较器:
配置自定义的权限登录器:
总体代码: