Spring Boot Actuator-无法禁用/ info端点

我尝试在application.yml配置文件中为生产环境禁用所有执行器端点:

endpoints.enabled: false

它适用于/ info以外的所有端点。如何关闭给定环境的所有端点?

我正在从事的项目也担任Eureka客户。在Spring Cloud Netflix的文档的“ 状态页和运行状况指示器”部分

(http://cloud.spring.io/spring-cloud-netflix/spring-cloud-

netflix.html)中,它说“ Eureka实例默认为” / info”和“ /健康”分别。

有什么解决方案可以禁用这些端点吗?

我可以使用禁用 / health 端点endpoints.enabled: false,但不能禁用 / info 端点。

回答:

最后,我设法解决了我的问题。我仅在执行器中启用了/ info和/ health端点。为了只允许具有ADMIN角色的用户访问/

info端点,我需要混合执行器管理安全性和spring安全性配置。

所以我的 application.yml 看起来像这样:

endpoints.enabled: false

endpoints:

info.enabled: true

health.enabled: true

management.security.role: ADMIN

像这样的spring安全配置(我需要更改 ManagementSecurityConfig的 顺序以具有更高的优先级):

@Configuration

@EnableWebSecurity

@EnableGlobalMethodSecurity(prePostEnabled = true)

public class SecurityConfiguration {

@Configuration

protected static class AuthenticationSecurity extends GlobalAuthenticationConfigurerAdapter {

@Autowired

private AuthenticationProvider authenticationProvider;

public AuthenticationSecurity() {

super();

}

@Override

public void init(AuthenticationManagerBuilder auth) throws Exception {

auth.inMemoryAuthentication().withUser("admin").password("secret").roles("ADMIN");

}

}

@Configuration

@Order(Ordered.HIGHEST_PRECEDENCE + 2)

public static class ManagementSecurityConfig extends WebSecurityConfigurerAdapter {

@Override

protected void configure(HttpSecurity http) throws Exception {

http.csrf().disable()

.requestMatchers()

.antMatchers("/info/**")

.and()

.authorizeRequests()

.anyRequest().hasRole("ADMIN")

.and()

.httpBasic();

}

}

@Configuration

public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {

protected void configure(HttpSecurity http) throws Exception {

// API security configuration

}

}

}

以上是 Spring Boot Actuator-无法禁用/ info端点 的全部内容, 来源链接: utcz.com/qa/435378.html

回到顶部