安全框架 使用者認證

2021-08-27 08:18:05 字數 2601 閱讀 4877

一、使用者登入的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...