Shiro 自定義Realm實現認證

2021-09-29 01:45:33 字數 1441 閱讀 4653

1. 獲取當前的 subject. 呼叫 securityutils.getsubject();

2. 測試當前的使用者是否已經被認證. 即是否已經登入. 呼叫 subject 的 isauthenticated()

3. 若沒有被認證, 則把使用者名稱和密碼封裝為 usernamepasswordtoken 物件

1). 建立乙個表單頁面

2). 把請求提交到 springmvc 的 handler

3). 獲取使用者名稱和密碼.

4. 執行登入: 呼叫 subject 的 login(authenticationtoken) 方法.

5. 自定義 realm 的方法, 從資料庫中獲取對應的記錄, 返回給 shiro.

1). 實際上需要繼承 org.apache.shiro.realm.authenticatingrealm 類

2). 實現 dogetauthenticationinfo(authenticationtoken) 方法.

6. 由 shiro 完成對密碼的比對. 

示例**:

public class userrealm extends authorizingrealm 

//用於認證

@override

protected authenticationinfo dogetauthenticationinfo(

authenticationtoken token) throws authenticationexception

//用於授權

@override

protected authorizationinfo dogetauthorizationinfo(

principalcollection principals)

}

package com.example.shiro.controller;

import org.apache.shiro.securityutils;

import org.apache.shiro.authc.usernamepasswordtoken;

import org.apache.shiro.subject.subject;

import org.springframework.stereotype.controller;

@controller

public class shirocotroller

catch (exception e)

}/**

* 前往登入頁面

* @return

*/public string tologin()

/*** 前往index頁面

* @return

*/public string toindex()

}

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...

許可權框架 shiro 自定義realm

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