shiro自定義realm認證 五

2021-10-05 21:24:22 字數 2043 閱讀 1312

上一節介紹了realm的作用:

realm:需要根據token中的身份資訊去查詢資料庫(入門程式使用ini配置檔案),如果查到使用者返回認證資訊,如果查詢不到返回null。token就相當於是對使用者輸入的使用者名稱和密碼的乙個封裝。下面就是建立乙個使用者名稱密碼token:

/** * 自定義realm。根據上面穿下來的token去資料庫查資訊,查到返回乙個******authenticationinfo,查不到返回null

* @author: qlq

* @date : 2023年7月28日下午8:45:52

*/public class customrealm extends authorizingrealm

// 用於認證

@override

protected authenticationinfo dogetauthenticationinfo(

authenticationtoken token) throws authenticationexception */

// 模擬從資料庫查詢到密碼

string password = "111111";

// 如果查詢到返回認證資訊authenticationinfo

******authenticationinfo ******authenticationinfo = new ******authenticationinfo(

usercode, password, this.getname());

return ******authenticationinfo;

}// 用於授權

@override

protected authorizationinfo dogetauthorizationinfo(

principalcollection principals)

}檢視:authenticationtoken

public inte***ce authenticationtoken extends serializable
需要在shiro-realm.ini配置realm注入到securitymanager中。

// 自定義realm測試

@test

public void testcustomrealm() catch (authenticationexception e)

// 是否認證通過

boolean isauthenticated = subject.isauthenticated();

system.out.println("是否認證通過:" + isauthenticated);

}

Shiro 自定義Realm實現認證

1.獲取當前的 subject.呼叫 securityutils.getsubject 2.測試當前的使用者是否已經被認證.即是否已經登入.呼叫 subject 的 isauthenticated 3.若沒有被認證,則把使用者名稱和密碼封裝為 usernamepasswordtoken 物件 1 建...

shiro之自定義realm

一 為當限前登入的使用者授予角色和權 protected authorizationinfo dogetauthorizationinfo principalcollection principals 這邊我一直沒找到什麼好的方法 就是在使用者登陸的時候,就要進行這一步的驗證,但是沒有實現,感覺有點...

許可權框架 shiro 自定義realm

上篇文章中是使用的預設realm來實現的簡單登入,這僅僅只是個demo,真正專案中使用肯定是需要連線資料庫的 首先建立自定義realm檔案,如下 在shiro中注入自定義realm的完全限定類名 1 main 2 your custom realm path 3foorealm com.lee.sh...