現在我們來學習一下,使用自定義realm的方式來授權。首先在我們的realm類中,要實現三個函式,getname,授權和驗證函式,如下所示。注意,我們授權函式中,新增相應的角色和許可權。
public class mypermissionrealm extends authorizingrealm
@override
protected authorizationinfo dogetauthorizationinfo(principalcollection principalcollection)
@override
protected authenticationinfo dogetauthenticationinfo(authenticationtoken token) throws authenticationexception
string password="123456";
//引數一:當前登陸使用者名稱,引數二:資料庫的密碼,引數三:當前realm的名字
******authenticationinfo info = new ******authenticationinfo(username, password, getname());
return info;
}}
其中,ini配置檔案如下所示。
[main]
myrealm=shriotest.mypermissionrealm
securitymanager.realms=$myrealm
下面我們來測試一下,效果。注意測試提供的許可權和自定義realm中的許可權不一致,則將會返回false,而角色是一致的,所以會返回true。
@test
public void testrolebyrealm()
shiro之自定義realm
一 為當限前登入的使用者授予角色和權 protected authorizationinfo dogetauthorizationinfo principalcollection principals 這邊我一直沒找到什麼好的方法 就是在使用者登陸的時候,就要進行這一步的驗證,但是沒有實現,感覺有點...
Shiro 學習筆記(3) 自定義 Realm
自定義的 realm 使得我們使用安全資料來源更加靈活,在自定義的 realm 中,我們就可以自己控制認證和授權的邏輯了。同時我們還簡單介紹了一下在多個 realm 同時存在的情況下,我們可以配置我們的認證策略來滿足我們的需求。前面兩節我們已經介紹過 inirealm 和 jdbcrealm,這一節...
Shiro學習筆記之自定義Realm實現認證和授權
我們之前通過配置檔案去獲取使用者角色許可權的資訊,但是有些時候希望從資料庫中讀取許可權資訊,此時就需要用到自定義realm。public class user public void setusername string username public string getpassword publ...