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

当Spring Boot实例停止时,Spring Boot客户端未从Spring Boot Admin注销

斜瑞
2023-03-14

我们有Spring Boot Admin版本2.0.3和相应的客户端版本。

我们的spring boot实例部署到Pivotal Cloud Foundry。

在部署新版本的spring boot实例之前,一切都很好。为实例生成一个新的内部url,并注册到admin。但它没有从管理员注销已删除的实例。

因此,它使spring boot admin处于不一致的状态。例如:

如何使已注册的实例在被销毁时取消注册。

我试过设置:

spring.boot.admin.client.auto-deregistration = true

但它并没有像人们希望的那样起作用。

共有1个答案

陶胤
2023-03-14

设置自动取消注册=true会导致客户端应用程序向endpoint上的服务器发送超文本传输协议删除调用。服务器上也必须为此endpoint禁用csrf检查。此配置在Spring启动管理留档的示例安全配置中丢失。(请参见https://github.com/codecentric/spring-boot-admin/issues/1251)
要解决此问题,请替换

.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringAntMatchers(adminContextPath + "/instances", adminContextPath + "/actuator/**");

具有

.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringRequestMatchers(
    new AntPathRequestMatcher(adminContextPath + "/instances", HttpMethod.POST.toString()),
    new AntPathRequestMatcher(adminContextPath + "/instances/*", HttpMethod.DELETE.toString()),
    new AntPathRequestMatcher(adminContextPath + "/actuator/**")
);
 类似资料:
  • 我已经尝试了这篇简单的教程https://spring.io/guides/gs/consource-web-service/,它起作用了。 然后尝试连接到另一个SOAP服务,使用一个附加的和扩展的客户端类。似乎这两个客户机类都使用了相同的-class,这使得我首先添加的一个失败(未知的jaxb-context等)。如何确保客户端类使用正确的-class?

  • 我在尝试执行此代码时遇到以下错误。 java.lang.IllegalArgumentException:在“com.app.aggregatorappaconfiguration”上找不到ConfigurationProperties注释。在org.springframework.util.assert.NotNull(assert.java:115)~[spring-core-4.3.2.re

  • 我希望当遇到错误时,用户会收到对其http调用的异常响应。该错误确实被捕获并显示在spring日志中,但不会返回给用户。为什么? 我的方法是: 日志中的错误: 错误处理程序: xception.java 例外回复。JAVA 用户收到403。。我不知道为什么,但我应该接受我的错误,没有任何身体。。 InternalServerExc0019在try/catch之外工作。.

  • 我正在尝试为一个使用SSL的外部HTTP API创建一个假客户端。困难在于——如何用我的逻辑修改默认的Spring佯装客户端,在本例中是SSL连接工厂。所以基本上我想保留Spring自动为假客户机做的所有好事情,比如Hystrix、Sleuth跟踪等,并使其与我的SSL工厂一起工作。 如有任何建议,将不胜感激。 以下是我试图做的: 我尝试在ComponentScan之外提供自定义@配置: 通过注解

  • 本规范不排除使用未注册的客户端。然而,使用这样的客户端超出了本规范的范围,并需要额外的安全性分析并审查其互操作性影响。

  • 本文向大家介绍springboot + swagger 实例代码,包括了springboot + swagger 实例代码的使用技巧和注意事项,需要的朋友参考一下 swagger用于定义API文档。 好处: 前后端分离开发 API文档非常明确 测试的时候不需要再使用URL输入浏览器的方式来访问Controller 传统的输入URL的测试方式对于post请求的传参比较麻烦(当然,可以使用postma