gpt4 book ai didi

带有 Spring Security 的 Spring Boot 2 执行器

转载 作者:行者123 更新时间:2023-12-02 06:35:38 24 4
gpt4 key购买 nike

如何利用 Spring Security 来保护执行器端点但不干扰任何其他应用程序 URL?我们应用程序中的安全机制由不同的框架处理,因此我想默认禁用 Spring Security,并且仅针对 /actuator/ 端点启用。

为了实现此目的,我将以下内容添加到初始化类中。

@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })

这样,Spring Security 默认配置就被禁用了。之后,我需要进行哪些更改来配置执行器端点的安全性?

最佳答案

您可以使用以下代码和配置

应用程序属性

spring.security.user.name=user
spring.security.user.password=password
spring.security.user.roles=ENDPOINT_ADMIN

保护执行器端点

import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

/**
* @author dpoddar
*
*/
@Configuration
@EnableWebSecurity
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.requestMatchers(EndpointRequest.to("health", "flyway","info")).permitAll()
.requestMatchers(EndpointRequest.toAnyEndpoint()).hasRole("ENDPOINT_ADMIN")
.and()
.httpBasic()
;
}

}

关于带有 Spring Security 的 Spring Boot 2 执行器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53289032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com