一、使用者登入的controller控制層**
@controller
public
class
logincontroller
}
二、獲取使用者資訊(交給安全框架),並進行認證授權
寫realm類
/**
*realm為shiro框架中的核心業務元件之一
*通過此物件可以完成資料業務的獲取以及封裝
*/@service
public
class
shirouserrealm
extends
authorizingrealm
/**在此方法中完成認證資訊的獲取以及封裝*/
@override
protected authenticationinfo dogetauthenticationinfo(
authenticationtoken token) throws authenticationexception
/**在此方法中完成授權資訊的獲取以及封裝*/
/** *realm為shiro框架中的核心業務元件之一
*通過此物件可以完成資料業務的獲取以及封裝
*/@service
public
class
shirouserrealm
extends
authorizingrealm
/**在此方法中完成認證資訊的獲取以及封裝*/
@override
protected authenticationinfo dogetauthenticationinfo(
authenticationtoken token) throws authenticationexception
/**在此方法中完成授權資訊的獲取以及封裝*/
@override
protected authorizationinfo dogetauthorizationinfo(
principalcollection principals) ));
基於選單id獲取許可權標識(sys:user:valid):查詢選單表sys_menus;
listpermissions=sysmenudao.findpermissions(
menuids.toarray(new integer{}));
//2.對許可權資訊封裝
******authorizationinfo info=new ******authorizationinfo();
//3.返回封裝結果(授權管理器);
setset=new hashset<>();
for(string per:permissions)
}info.setstringpermissions(set);
return info;}}
三、將身份交給realm
@configuration
public
class
/** * 配置shiro的securitymanager物件
*/@bean("securitymanager")
public securitymanager newsecuritymanager(
authorizingrealm realm)
resulttype="int">
select role_id
from sys_user_roles
where user_id=#
select>
resulttype="int">
select menu_id
from sys_role_menus
where role_id in
open="("
close=")"
separator=","
item="item">
#foreach>
select>
id="findpermissions"
resulttype="string">
select permission
from sys_menus
where id in
collection="menuids"
open="("
close=")"
separator=","
item="item">
#foreach>
select>
授權檢測實現
在需要進行授權檢測的方法上新增執行此方法需要的許可權標識
例如
@requestpermissions(「sys:
user:valid」)
Shiro安全框架(四) 許可權認證
1 許可權認證核心要素 許可權認證,也就是訪問控制,即在應用中控制誰能訪問哪些資源。在許可權認證中,最核心的三個要素是 許可權,角色,使用者。使用者 在shiro中,代表訪問系統的使用者,即subject。角色 是許可權的集合,乙個角色可以包含多個許可權。許可權 操作資源的權利,如訪問某個頁面,及某...
Shiro安全框架 自定義認證
1.和之前一樣先引入依賴 org.apache.shiro shiro web org.apache.shiro shiro core org.apache.shiro shiro spring commons logging commons logging 1.22.配置好自定義shiro.ini...
Django框架之 使用者認證auth模組
我們在開發乙個 時,無法避免的需要設計 的使用者系統,此時我們需要實現包括使用者註冊,登入,認證,登出,修改密碼等功能,把這些事全部寫一遍也挺麻煩的,django作為乙個完美主義的終極框架,也當然會為使用者想到這些痛點,它內建了強大的使用者認證系統,預設使用auth user表來儲存使用者資料 au...