spring security動態配置許可權的方案2

2021-09-14 04:41:23 字數 981 閱讀 4759

本文介紹一下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...