java SpringBoot禁用致动器根部

2eafrhcq  于 2023-01-19  发布在  Java
关注(0)|答案(2)|浏览(139)

我正在使用Sping Boot ,并公开actuator和prometheus的指标。我想公开infohealthmetricsprometheusshutdown,仅此而已。但即使我在应用程序属性中指定,我看到的也是连根/actuator都公开了。
我想禁用根执行器,只有5个成员,我说之前。
有没有办法不只公开/actuator端点?我也尝试过在应用程序属性中这样做:

management.endpoints.web.exposure.exclude=actuator

这是暴露的执行器列表:

{
   "_links":{
      "self":{
         "href":"http://localhost:9002/actuator",
         "templated":false
      },
      "health-component-instance":{
         "href":"http://localhost:9002/actuator/health/{component}/{instance}",
         "templated":true
      },
      "health-component":{
         "href":"http://localhost:9002/actuator/health/{component}",
         "templated":true
      },
      "health":{
         "href":"http://localhost:9002/actuator/health",
         "templated":false
      },
      "shutdown":{
         "href":"http://localhost:9002/actuator/shutdown",
         "templated":false
      },
      "info":{
         "href":"http://localhost:9002/actuator/info",
         "templated":false
      },
      "prometheus":{
         "href":"http://localhost:9002/actuator/prometheus",
         "templated":false
      },
      "metrics-requiredMetricName":{
         "href":"http://localhost:9002/actuator/metrics/{requiredMetricName}",
         "templated":true
      },
      "metrics":{
         "href":"http://localhost:9002/actuator/metrics",
         "templated":false
      }
   }
}
fwzugrvs

fwzugrvs1#

此操作没有配置值。您现在最好将管理基本终结点移动到/,在这种情况下,发现页面将被禁用,以防止与应用中的其他终结点发生冲突:
https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#production-ready-endpoints-hypermedia
当管理上下文路径设置为/时,发现页被禁用,以防止与其他Map发生冲突。
如果您使用的是Spring Security,则可以在您自己的WebSecurityConfigurerAdapter中使用类似下面的代码来有效地隐藏发现页面:

@Override
protected void configure(HttpSecurity http) throws Exception
{
   http
      .authorizeRequests()
         .mvcMatchers("/actuator").denyAll()
         .mvcMatchers("/actuator/").denyAll()
}

这将拒绝对发现页面的所有请求,但允许对各个公开端点的请求。
在这个GitHub问题中也有一些关于发现页面的讨论:
https://github.com/spring-projects/spring-boot/issues/10331

mwecs4sa

mwecs4sa2#

根据Spring文档:
要禁用"发现页",请将以下属性添加到应用程序属性中:

management.endpoints.web.discovery.enabled=false

相关问题