使用Spring Actuator时无法排除/ info和/ health / {* path}

问题描述 投票:1回答:1

我正在使用Spring Actuator(版本2.2.4.RELEASE)在/localhost:8080/my-app/actuator/health处生成运行状况检查端点,该端点正常工作。

这将生成3个端点,这些端点在访问/actuator时显示并在Swagger中显示(版本2):

  1. /actuator/health
  2. [/actuator/health/{*path}(在我的张扬页面中,这显示为/actuator/health/**)]
  3. /actuator/info

由于AWS的原因,health/**出现问题,想删除它(并且我也想删除/info,因为我不需要它)。

我尝试将以下内容添加到我的application.properties文件中:

management.endpoints.web.exposure.exclude=health,info

management.endpoints.jmx.exposure.exclude=health,info

但是没有任何区别(它们仍然会生成)。我尝试使用*来查看是否会强制所有端点消失,但也不会改变任何东西。

知道如何解决此问题?

编辑1

我发现一个属性文件被另一个文件覆盖。因此,使用以下命令:

management.endpoints.enabled-by-default=false
management.endpoint.health.enabled=true

摆脱/actuator/info端点。但是,我仍然需要摆脱/actuator/health/{*path}并保留/actuator/health端点。

spring-boot swagger spring-boot-actuator
1个回答
0
投票

公开摇摇欲坠的UI的推荐方法是仅启用特定路径。这是一个仅可用于公开/rest/*端点的示例。您可以将其替换为所需的任何模式。

private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        .title("Give a meaningful Title")
        .description("Describe your API")
        .termsOfServiceUrl("Put your T&C URL")
        .contact("Contact details")
        .license("Licence Description")
        .licenseUrl("Licence Endpoint")
        .version("API Version")
        .build();
}
private Predicate<String> paths() {
    return or(regex("/rest/.*"));
}

@Bean
public Docket newsApi() {
    return new Docket(DocumentationType.SWAGGER_2)
        .groupName("rest")
        .apiInfo(apiInfo())
        .select()
        .paths(paths())
        .build();
}

此示例仅允许您要公开的端点。

示例实现请参见https://github.com/reflexdemon/shop/blob/master/src/main/java/org/shop/Application.java#L85-L107

演示查看端点的示例:https://shop.vpv.io/swagger-ui.html通过使用登录用户名stack密码overflow查看摇摇欲坠。

© www.soinside.com 2019 - 2024. All rights reserved.