我正在运行Spring Boot v1.5.2.RELEASE。
如何在不禁用整个Spring Boot项目的安全性的情况下显示DEFINER
以下内容?
/health
以下是TestingHealthIndicator.java的代码:
{
"status": "UP",
"testing": {
"status": "UNKNOWN",
"foo": "bar"
}
}
"测试"仅当我在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
但我不想禁用整个项目的安全性。
我确实在这里看到了一些有用的信息:https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html,但没有看到将自定义management.security.enabled=false
management.health.defaults.enabled=false
设置为非敏感的特定方式。
答案 0 :(得分:0)
假设您只想禁用Security for healthcheck。对于apis的其余部分,您希望正常进行身份验证。因此,健康需要显示所有信息。我曾经在Springboot 4.4中拥有相同的项目。这是我在application.yml
中配置的内容endpoints:
health:
sensitive: false
management:
security:
enabled: false
health:
defaults:
enabled: true
在安全性方面,将其他apis做为完全身份验证。
<intercept-url pattern="/health access="permitAll" />
<intercept-url pattern="/api/**" access="isFullyAuthenticated()" />
希望这有帮助。