通過檢視shiro提供的realm原始碼,自定義乙個realm需繼承authorizingrealm類,重寫其兩個方法。
public
class
customrealm
extends
authorizingrealm
//用做授權
protected authorizationinfo dogetauthorizationinfo
(principalcollection principals)
private string[
]getpermissionsbyuser()
;//這裡模擬資料庫中的角色表資訊
return permissions;
}private string[
]getrolesbyuser()
;//這裡模擬資料庫中的角色表資訊
return roles;
}//用作認證
protected authenticationinfo dogetauthenticationinfo
(authenticationtoken token)
throws authenticationexception
******authenticationinfo ******authenticationinfo
=new******authenticationinfo
(name, password,
"real");
//把已經知道的密碼鹽值設定到返回的認證物件中
******authenticationinfo.
setcredentialssalt
(bytesource.util.
bytes
("dinkon"))
;return ******authenticationinfo;
}private string getpasswordbyuser
(string name)
public
static
void
main
(string[
] args)
}
@test
public
void
testauthtication()
catch
(unknownaccountexception e)
catch
(incorrectcredential***ception e)
if(subject.
isauthenticated()
==true
)"管理員");//檢查角色
"招人");
退出登入
// try catch (unauthorizedexception e)
system.out.
println
(message)
;}
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...