You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过配置文件禁用Spring Security的@EnableWebSecurity与@EnableMethodSecurity特性

快速关闭Spring Security(含方法级安全)的解决方案

你当前的问题是:通过配置参数关闭SecurityFilterChain后,虽然Token验证失效,但@PreAuthorize注解仍在生效。这是因为方法级安全(@PreAuthorize)和Web层面的安全控制是两个独立模块,只关闭HttpSecurity的配置并不会影响方法级的权限校验。

下面是具体解决办法:

1. 控制方法级安全的开关

@EnableMethodSecurity注解支持通过enabled属性动态控制是否启用方法级权限校验,把这个属性绑定到配置文件参数即可:

@EnableMethodSecurity(enabled = "${security.method.enabled:true}")
@EnableWebSecurity
public class SecurityConfig {
    // 你的其他配置代码
}

2. 优化Web安全的关闭逻辑

原来的else块只关闭了securityContext,不够彻底,需要完全禁用所有Web层面的安全检查:

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http, JwtAuthenticationConverter converter) throws Exception {
    if (officeSecurityProperties.isEnable()) {
        http.authorizeHttpRequests(
                        authorize -> authorize
                                .requestMatchers("/doc.html", "/webjars/**", "/v3/api-docs/**").permitAll()
                                .anyRequest().authenticated()
                )
                .oauth2ResourceServer(
                        oauth2 -> oauth2.jwt(
                                jwt -> jwt.jwtAuthenticationConverter(converter)
                        )
                );
    } else {
        // 彻底关闭Web层面所有安全校验
        http.authorizeHttpRequests(auth -> auth.anyRequest().permitAll())
            .csrf(AbstractHttpConfigurer::disable)
            .oauth2ResourceServer(AbstractHttpConfigurer::disable)
            .securityContext(AbstractHttpConfigurer::disable)
            .sessionManagement(AbstractHttpConfigurer::disable);
    }
    return http.build();
}

3. 配置文件中快速关闭

在配置文件(比如application.yml)中添加以下参数,重启服务即可完全关闭Spring Security的所有校验:

# 关闭Web层面安全
office:
  security:
    enable: false
# 关闭方法级安全(@PreAuthorize)
security:
  method:
    enabled: false

这样修改后,排查问题时只需要修改配置文件重启服务,再也不用移除注解重新编译部署了。

内容的提问来源于stack exchange,提问作者keyboardDog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 02:32:40