diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java
index 663239ba4..7297b5897 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java
@@ -3,14 +3,12 @@ package org.dromara.common.security.config;
import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.exception.NotPermissionException;
import cn.dev33.satoken.filter.SaServletFilter;
-import cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet;
import cn.dev33.satoken.httpauth.basic.SaHttpBasicUtil;
import cn.dev33.satoken.interceptor.SaInterceptor;
import cn.dev33.satoken.router.SaRouter;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaResult;
import cn.dev33.satoken.util.SaTokenConsts;
-import jakarta.servlet.DispatcherType;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
@@ -25,13 +23,10 @@ import org.dromara.common.security.config.properties.SecurityProperties;
import org.dromara.common.security.handler.AllUrlHandler;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
-import org.springframework.core.Ordered;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import java.util.EnumSet;
import java.util.List;
/**
@@ -50,28 +45,6 @@ public class SecurityConfig implements WebMvcConfigurer {
private final SecurityProperties securityProperties;
- /**
- * 重新注册 Sa-Token 上下文过滤器,使其覆盖 Servlet 异步分发。
- *
- * SSE、WebSocket 握手等场景可能触发 ASYNC/ERROR dispatcher,如果上下文过滤器只处理普通 REQUEST,
- * 后续统一鉴权或业务代码读取 SaHolder/StpUtil 时会出现 SaTokenContext 未初始化。
- *
- * @param filter Sa-Token 官方上下文过滤器
- * @return 过滤器注册配置
- */
- @Bean
- public FilterRegistrationBean saTokenContextFilterRegistration(
- SaTokenContextFilterForJakartaServlet filter) {
- FilterRegistrationBean registration = new FilterRegistrationBean<>();
- registration.setFilter(filter);
- registration.setName("saTokenContextFilterForServlet");
- registration.addUrlPatterns("/*");
- registration.setDispatcherTypes(EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.ERROR));
- registration.setAsyncSupported(true);
- registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
- return registration;
- }
-
/**
* 注册 Sa-Token 路由拦截器并配置鉴权规则。
*
diff --git a/ruoyi-common/ruoyi-common-security/src/test/java/org/dromara/common/security/SecurityConfigTest.java b/ruoyi-common/ruoyi-common-security/src/test/java/org/dromara/common/security/SecurityConfigTest.java
index 0bb52eecc..501487a41 100644
--- a/ruoyi-common/ruoyi-common-security/src/test/java/org/dromara/common/security/SecurityConfigTest.java
+++ b/ruoyi-common/ruoyi-common-security/src/test/java/org/dromara/common/security/SecurityConfigTest.java
@@ -1,18 +1,14 @@
package org.dromara.common.security;
-import cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet;
import cn.dev33.satoken.exception.NotPermissionException;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.extra.spring.SpringUtil;
-import jakarta.servlet.DispatcherType;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.security.config.SecurityConfig;
import org.dromara.common.security.config.properties.SecurityProperties;
import org.dromara.common.security.handler.AllUrlHandler;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.core.Ordered;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.web.method.HandlerMethod;
@@ -32,27 +28,6 @@ import static org.mockito.Mockito.when;
@DisplayName("common-security 功能单元测试")
class SecurityConfigTest {
- /**
- * 验证 Sa-Token 上下文过滤器覆盖请求、异步和错误分发,并保持最高优先级。
- */
- @Test
- @DisplayName("注册 Sa-Token 上下文过滤器")
- void shouldRegisterSaTokenContextFilterForAsyncDispatch() {
- SecurityConfig config = new SecurityConfig(new SecurityProperties());
- SaTokenContextFilterForJakartaServlet filter = mock(SaTokenContextFilterForJakartaServlet.class);
-
- FilterRegistrationBean registration =
- config.saTokenContextFilterRegistration(filter);
-
- assertSame(filter, registration.getFilter());
- assertEquals("saTokenContextFilterForServlet", registration.getFilterName());
- assertEquals(Set.of("/*"), registration.getUrlPatterns());
- assertEquals(Set.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.ERROR),
- ReflectionTestUtils.getField(registration, "dispatcherTypes"));
- assertTrue(registration.isAsyncSupported());
- assertEquals(Ordered.HIGHEST_PRECEDENCE, registration.getOrder());
- }
-
/**
* 验证安全排除路径配置可以完整保存,供拦截器注册时使用。
*/