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