shrio學習 自定義realm授權

2021-09-19 18:58:26 字數 927 閱讀 7775

現在我們來學習一下,使用自定義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...