本文介紹一下spring security另外一種動態許可權配置的方案
@enablewebsecurity
public class securityconfig extends websecurityconfigureradapter
@override
protected void configure(httpsecurity http) throws exception
這裡將所有的資料許可權校驗交給access這個方法定義的spring el表示式
@component
public class authservice
if(authentication instanceof anonymousauthenticationtoken)
setroles = authentication.getauthorities()
.stream()
.map(e -> e.getauthority())
.collect(collectors.toset());
string uri = request.getrequesturi();
//check this uri can be access by this role
return true;
}}
這裡可以單獨把anonymousauthenticationtoken拿出來校驗,也可以將放到roles統一校驗,其role為role_anonymous使用這種方式,就沒必要在每個方法上新增@preauthorize或者@secured註解了,也就是不寫死每個方法的許可權,而是配置在資料庫等其他儲存,然後在authservice裡頭執行時讀取判斷,這樣就支援資料許可權的動態修改和生效。
這種方法相比@preauthorize方式,有幾點不足:
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...