gpt4 book ai didi

java - 如何在 Spring Boot 中将自定义 AbstractHealthIndicator 设置为不敏感,以便显示 for/health 端点?

转载 作者:行者123 更新时间:2023-12-01 14:34:21 29 4
gpt4 key购买 nike

我正在运行 Spring Boot v1.5.2.RELEASE。

如何在不禁用整个 Spring Boot 项目的安全性的情况下让 /health 显示在下面?

{
"status": "UP",
"testing": {
"status": "UNKNOWN",
"foo": "bar"
}
}

下面是我的 TestingHealthIndicator.java 代码:

import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health.Builder;
import org.springframework.stereotype.Component;

@Component
public class TestingHealthIndicator extends AbstractHealthIndicator {

@Override
protected void doHealthCheck(Builder builder) throws Exception {
builder.withDetail("foo", "bar");
}
}

仅当我在 application.properties

中设置以下内容时,“testing”才会显示在/health 中
management.security.enabled=false
management.health.defaults.enabled=false

但我不想禁用整个项目的安全性。

我确实在这里看到了一些有用的信息:https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html ,但没有看到将自定义 AbstractHealthIndicator 设置为非敏感的特定方法。

最佳答案

假设您只想禁用健康检查的安全性。对于其余的 api,您希望像往常一样进行身份验证。所以,健康需要展示所有的信息。我曾经在 Springboot 4.4 中有相同的项目。这是我在 application.yml 中配置的

endpoints:
health:
sensitive: false

management:
security:
enabled: false
health:
defaults:
enabled: true

在security中,让其他api做fullyAuthentication。

<intercept-url pattern="/health access="permitAll" />
<intercept-url pattern="/api/**" access="isFullyAuthenticated()" />

希望对您有所帮助。

关于java - 如何在 Spring Boot 中将自定义 AbstractHealthIndicator 设置为不敏感,以便显示 for/health 端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45290281/

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