SpringSecurity拋出異常但AccessDeniedHandler不生效的解決
復(fù)現(xiàn)
@Bean
public SecurityFilterChain securedFilterChain(HttpSecurity http) throws Exception {
//...
//異常
http.exceptionHandling(except -> {
except.authenticationEntryPoint(new SecurityAuthenticationEntryPoint());
except.accessDeniedHandler((request, response, e) -> { //請求未授權(quán)的接口
//創(chuàng)建結(jié)果對象
HashMap result = new HashMap();
result.put("code", -1);
result.put("message", "沒有權(quán)限");
//轉(zhuǎn)換成json字符串
String json = JSON.toJSONString(result);
//返回響應(yīng)
response.setContentType("application/json;charset=UTF-8");
response.getWriter().println(json);
});
//...
});
還是拋出異常
org.springframework.security.access.AccessDeniedException: Access Denied
at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.attemptAuthorization(AuthorizationManagerBeforeMethodInterceptor.java:256) ~[spring-security-core-6.2.1.jar:6.2.1]
at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invo
原因
@RestControllerAdvice全局異常攔截到了直接返回,注釋掉
或者采用
import org.springframework.security.access.AccessDeniedException
//...
@ExceptionHandler(AccessDeniedException.class)
public void accessDeniedException(AccessDeniedException e) throws AccessDeniedException {
throw e;
}
//...到此這篇關(guān)于SpringSecurity拋出異常但AccessDeniedHandler不生效的解決的文章就介紹到這了,更多相關(guān)SpringSecurity AccessDeniedHandler不生效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Java設(shè)計模式編程中命令模式的項目結(jié)構(gòu)實現(xiàn)
這篇文章主要介紹了Java設(shè)計模式編程中命令模式的項目結(jié)構(gòu)實現(xiàn),命令模式將請求與執(zhí)行分離,可以多個命令接口的實現(xiàn)類,隱藏真實的被調(diào)用方,需要的朋友可以參考下2016-04-04
如何在SpringBoot項目中集成SpringSecurity進行權(quán)限管理
在本文中,我們將討論如何在Spring?Boot項目中集成權(quán)限管理,我們將使用Spring?Security框架,這是一個專門用于實現(xiàn)安全性功能的框架,包括認證和授權(quán),需要的朋友可以參考下2023-07-07
基于SpringBoot實現(xiàn)圖片上傳并生成縮略圖功能
在實際開發(fā)中,上傳圖片并生成縮略圖是一項常見需求,例如在電商平臺、社交應(yīng)用等場景中,縮略圖可以有效提高頁面加載速度,優(yōu)化用戶體驗,本文將介紹如何在 Spring Boot 項目中實現(xiàn)上傳圖片并生成縮略圖的功能,需要的朋友可以參考下2025-08-08

