From 809d6aaa9426ef20dc964dd3ec6512051f2048d9 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 30 Aug 2026 10:59:29 +0800 Subject: [PATCH] fix(security):禁用 TokenAuthenticationFilter 的 Servlet 全局注册 --- yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+), 0 deletions(-) diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java index 8874b15..c8c169e 100644 --- a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java @@ -14,6 +14,7 @@ import org.springframework.beans.factory.config.MethodInvokingFactoryBean; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureOrder; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -73,6 +74,19 @@ public class YudaoSecurityAutoConfiguration { return new TokenAuthenticationFilter(securityProperties, globalExceptionHandler, oauth2TokenApi); } + /** + * Token 过滤器由 Spring Security FilterChain 管理,禁止 Spring Boot 再注册为 Servlet 全局 Filter + * + * @see Issue #1198 + */ + @Bean + public FilterRegistrationBean tokenAuthenticationFilterRegistration( + TokenAuthenticationFilter filter) { + FilterRegistrationBean registration = new FilterRegistrationBean<>(filter); + registration.setEnabled(false); + return registration; + } + @Bean("ss") // 使用 Spring Security 的缩写,方便使用 public SecurityFrameworkService securityFrameworkService(PermissionCommonApi permissionApi) { return new SecurityFrameworkServiceImpl(permissionApi); -- libgit2 0.21.4