1. 程式人生 > >shiro權限控制

shiro權限控制

nis mep token lda 圖片 then ets 測試類 密碼

說在前面:

一、我們將使用的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權限控制