Spring Security動態許可權配置

2021-10-05 14:01:43 字數 3202 閱讀 6974

如圖所示:hr代表使用者,具有多種角色,不同的角色有訪問不同選單的許可權,根據使用者的角色動態的顯示其訪問選單的許可權。

資料庫設計:

首先配置filterinvocationsecuritymetadatasource,監聽使用者的請求,獲取請求位址url所需的角色,如果url不存在返回role_login作為標記。

/**

* 這個類的功能,根據使用者傳來的的請求位址,分析出請求需要的角色

* **/

@component

public

class

customfilterinvocationsecuritymetadatabase

implements

filterinvocationsecuritymetadatasource

return securityconfig.

createlist

(role);}

}return securityconfig.

createlist

("role_login");

}@override

public collection

getallconfigattributes()

@override

public

boolean

supports

(class<

?> clazz)

}

自定義乙個類繼承accessdecisionmanager,判斷使用者是否具有相應的角色。

/**

* 判斷當前使用者是否具有所需的角色

* **/

@component

public

class

customaccessdecisionmanager

implements

accessdecisionmanager

else

}for

(grantedauthority authority : authorities)}}

throw

newaccessdeniedexception()

;}@override

public

boolean

supports

(configattribute attribute)

@override

public

boolean

supports

(class<

?> clazz)

}

最後再配置websecurityconfigureradapter

@configuration

public

class

websecurityconfig

extends

websecurityconfigureradapter

/* 如果要訪問/login頁面 ,不用經過spring security攔截*/

@override

public

void

configure

(websecurity web)

throws exception

/** * 認證使用者與授權

//允許所有使用者訪問

spring security 安全框架

本文 http itblood.com spring security security framework.html 安全常識 acegi介紹 以宣告式方式為基於spring的web應用新增認證和授權控制 acegi體系結構 認證管理器 訪問控制管理器。認證 authenticationproce...

SpringSecurity認證流程

在之前的文章 springboot spring security 基本使用及個性化登入配置 中對springsecurity進行了簡單的使用介紹,基本上都是對於介面的介紹以及功能的實現。這一篇文章嘗試從原始碼的角度來上對使用者認證流程做乙個簡單的分析。在具體分析之前,我們可以先看看springse...

SpringSecurity使用技巧

1 鑑權處理頁通常包括四個方面的設定,分別是鑑權失敗 鑑權成功 未鑑權訪問 已鑑權但訪問了受保護許可權。如何自 定義這四類處理。鑑權失敗的預設處理頁面是 spring security login?login error 其預設處理類為 urlauthenticationfailurehandler...