權限控制是一個比較重要的知識點。
先講一下相關理論知識,如圖:

每次發送請求都會調用到controller,而controller又會調用subject,每個使用者對應一個subject(subject包含了session),且subject會負責和shiro互動,securityManager管理了Realm,而Realm可以進行登入驗證,可以對使用者操作付權限。
通過SpringBoot做權限控制的步驟如下:
1、首先要引入相應的包。
除了要引入其他基本功能的包,還要引入和權限控制相關的包,pom代碼如下:
2、自定義Realm 繼承自AuthorizingRealm:
3、密碼校驗器:
4、建立權限管理類:
這一步首先需要定義一個方法傳回ShiroFilterFactoryBean,ShiroFilterFactoryBean對象要設定登入的URL,設定哪些路徑是可以匿名通路,哪些是需要權限通路的。
然後配置核心安全事務管理器,傳回SecurityManager對象:
設定密碼比較器:
配置自定義的權限登入器:
總體代碼: