shiro權限控制
說在前面:
一、我們將使用的API記住
IniSecurityManagerFactory : 用於加載配置文件,創建SecurityManager對象
SecurityManager :就是整個Shiro的控制對象
SecurityUtils :SecurityManager 工具類,用於獲得Subject對象
Subject :身份類
UsernamePasswordToken: 身份信息構建類 (Token 令牌)
AuthorizingRealm :支持校驗與授權的Realm
AuthenticationInfo :校驗成功返回的信息的父類
SimpleAuthenticationInfo :校驗成功返回信息類
AuthorizationInfo 授權成功返回的信息類的父類
PrincipalCollection 授予是獲得驗證信息的類
SimpleAuthorizationInfo 授權成功返回的信息類的實現類
Md5Hash : Md5加密類
ByteSource : 用於構造Md5加鹽的類。
HashedCredentialsMatcher :Md5算法校驗器,用於支持Md5校驗
二、入門實例
1.入門實例
①導包
②在src下創建shiro.ini配置文件
③創建測試類
a、使用IniSecurityManagerFactory讀取配置文件,並通過SecurityManager創建一個操作shiro控制對象的實例
b、通過SecurityUtils獲得一個身份對象,需要先setSecurityManager
c、通過UsernamePasswordToken設置參數,再通過SecurityManager實例的login登陸驗證
三、權限驗證
說在前面:Shiro是通過Realm機制,實現將配置文件的校驗用戶信息存放在數據庫、LDAP等數據存儲系統裏面。
首先我們先進行簡單的權限驗證
1.創建MyRealm類,繼承AuthorizingRealm,重寫其中的doGetAuthenticationInfo方法,返回info
①判斷如果用戶名和token(頁面傳過來)中的值是否相等,相等返回驗證信息SimpleAuthenticationInfo
②修改shiro.ini配置文件:
四、shiro加密算法
1.創建md5測試類,
2.修改MyRealm中的代碼
3.修改shiro.ini配置文件支持MD5算法
五、使用pojo獲取返回對象
1.創建pojo類,有id、name、pwd基本屬性
2.修改myrealm中的代碼
3.在shirotest中測試:將獲取的對象信息強轉成pojo對象
註意返回的校驗對象:
1.principal : 返回的驗證通過後信息, 接收方通過subject對象接收
2.credentials:設置密碼
3.返回realm的名稱,可以任何設置一個唯一的字符串就可以,一般設置realm的類名
六、權限授權
shiro權限控制