当前位置: 首页 > 知识库问答 >
问题:

如何在Springboot应用程序中禁用执行器的侦听器调用

澹台鸿光
2023-03-14

我试图在我的基于微服务的Spring启动应用程序中实现普罗米修斯,部署在weblogic服务器上。作为POC的一部分,我已经将配置作为一场战争的一部分。为了启用它,我在下面设置了配置-

应用属性

 management:
  endpoint:
   prometheus:
    enabled: true   
 endpoints:
  web:
    exposure:
     include: "*"

格拉德尔-

    implementation 'io.micrometer:micrometer-registry-prometheus'

但执行器请求被现有的拦截器阻止。它要求在特定于我们项目的标题中传递值。通过postman(http:localhost:8080/abc/activator/prometheus),我可以测试我的POC(带有所需的头),它会返回prometheus预期的时间序列数据。但普罗米修斯无法自行销毁数据(使用拉方法),因为调用在请求中缺少头。

我试图通过以下链接(link1,link2)绕过它,但我的请求仍然被现有的拦截器截获。拦截请求的拦截器是依赖JAR的一部分。

编辑-我使用以下方式排除所有对拦截器的调用-

 @Configuration
 public class MyConfig implements WebMvcConfigurer{

@Override
public void addInterceptors(InterceptorRegistry registry){
    registry.addInterceptor(new MyCustomInterceptor()).addPathPatterns("**/actuator/**");
}

}

MyCustomInterceptor

@Component
 public class MyCustomInterceptor implements HandlerInterceptor{

  }

我没有在MyCustomInterceptor中实现任何自定义功能(因为我只想从其他拦截器中排除对“执行器”endpoint的所有调用)。

共有1个答案

萧德庸
2023-03-14
@Configuration
public class ActuatorConfig extends WebMvcEndpointManagementContextConfiguration {

  public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebAnnotationEndpointDiscoverer endpointDiscoverer,
                                                                       EndpointMediaTypes endpointMediaTypes,
                                                                       CorsEndpointProperties corsProperties,
                                                                       WebEndpointProperties webEndpointProperties) {
    WebMvcEndpointHandlerMapping mapping = super.webEndpointServletHandlerMapping(
      endpointDiscoverer,
      endpointMediaTypes,
      corsProperties,
      webEndpointProperties);

    mapping.setInterceptors(null);

    return mapping;
  }
}

也许你可以设置为空。我从你那里得到了密码https://github.com/spring-projects/spring-boot/issues/11234

 类似资料:
  • 我目前正在为一个包含大量模块的大项目创建TestNG测试用例。现有的大多数单元测试实际上都是集成测试,因为它们非常依赖于/opt文件夹中的配置文件以及正在运行的数据库和消息队列。 为了使事情进一步复杂化,测试用例使用配置位于resources/meta-inf/services/org.TestNG.itestnglistener文件中的TestNG侦听器。这个文件中的侦听器触发所有测试用例(正如

  • 问题内容: 我的应用程序中有一个通知表的Firebase 事件侦听器,当该应用程序在后台时,我想触发推送通知。 这是监听器: 当应用程序位于前台时,这非常有用。然后,在我的应用程序委托方法中添加一个后台观察器,以在后台对其进行观察: 但是当应用程序在后台运行时,事件观察器不会触发。Ive调查了Firebase Cloud Messenger以解决此问题,并遇到了类似这样的帖子: 是否可以使用Fir

  • 问题内容: 我有一个带有模型和视图的Swing应用程序。在视图(GUI)中,有很多组件,每个组件都映射到模型对象的某些属性并显示其值。 现在,有一些UI组件会在UI中的值更改时自动触发某些模型属性的更新。这需要我在UI中重新加载完整的模型。这样,我进入了一个无限的更新循环,因为UI中的每个模型重新加载都会触发另一个模型重新加载。 我有一个指示加载过程的标志,在通过模型设置UI字段时,我想使用它来临

  • 我在Spring消息中使用Stomp over SockJS。我正在尝试在连接新用户时向所有登录用户发送消息。首先,这是我的听众: 我的WebSocket配置 我的JS配置 我在这里的问题是,我的template.convert和发送()在应用程序监听器中不工作。但是,如果我把它放在一个带有@Message映射注释的Controller方法中,它将工作,并且我将有一个控制台日志客户端。 所以我的问

  • 我正在使用springboot,我正在使用执行器和prometheus暴露度量。我想暴露“信息”、“健康”、“度量”、“prometheus”、“关闭”等等。但是即使我指定应用程序属性,我看到的是甚至根“/执行器”也暴露了。 我想禁用根部执行器,只有我之前说过的5个成员。 有没有办法不只暴露/执行器endpoint?我也尝试过在应用程序属性中这样做: 这是外露致动器的列表:

  • 问题内容: 有一种简单的方法可以在调用之前和之后调用JavaScript动作,例如,我想在后备bean中调用 之前 和 之后 调用JavaScript动作: 添加多个元素似乎不起作用(也许应该吗?!),例如 仅被调用。 问题答案: 使用属性。它必须指向一个回调函数引用(所以不要包括括号!): 实际的回调函数如下所示(JSF会自己提供参数):