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

如何让togglz-console绕过Spring Security认证,在管理端口免权访问?

问题根源

你开启了togglz.console.use-management-port=true,这会让Togglz控制台部署在**管理端口(8081)**上。而你当前定义的SecurityFilterChain是作用于主应用端口的Web上下文的,管理端口拥有独立的Web上下文,主应用的安全规则不会覆盖到这里,所以控制台依然会被登录拦截。

解决方案

需要单独为管理端口的Web上下文配置安全规则,创建一个带@ManagementContextConfiguration注解的配置类,在里面定义针对管理端口的SecurityFilterChain:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementContextConfiguration;

@Configuration
@ManagementContextConfiguration
public class ManagementSecurityConfig {

    @Bean
    public SecurityFilterChain managementSecurityFilterChain(HttpSecurity http) throws Exception {
        return http
                .authorizeHttpRequests(requests -> requests
                        // 放行Togglz控制台和Actuator端点
                        .requestMatchers("/togglz-console/**", "/actuator/**")
                        .permitAll()
                        // 其他管理端口请求需要认证(如果有)
                        .anyRequest().authenticated()
                )
                .csrf(csrf -> csrf.disable())
                .build();
    }
}
额外注意事项
  1. 移除togglz-security-spring-boot-starter依赖,该依赖是用来给Togglz控制台添加权限控制的,与你要完全放开认证的需求冲突。
  2. 保留togglz.console.secured=false配置,确保Togglz自身不会额外添加认证拦截。

完成配置后,重启应用访问http://localhost:8081/togglz-console即可无需认证直接进入控制台。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:17:28