首页 > 解决方案 > Spring Boot 将嵌入式 servlet 定制器复制到管理端口

问题描述

我有一个自定义WebServerFactoryCustomizer,但它不适用于管理端口。使自定义可用于管理端口上的服务器的最佳方法是什么?常规服务器在端口 = 8080 上,管理服务器在端口 = 8082 上。

我试着玩弄,ServletManagementWebServerFactoryCustomizer但没有用。任何指针将不胜感激。

这是自定义程序(禁用 Undertow 的 TRACE)

public class UndertowCustomizer implements
  WebServerFactoryCustomizer<ConfigurableUndertowWebServerFactory> {

@Override
public void customize(final ConfigurableUndertowWebServerFactory undertowWebServerFactory) {
  undertowWebServerFactory.addDeploymentInfoCustomizers(deploymentInfo ->
      deploymentInfo.addInitialHandlerChainWrapper(handler ->
          new DisallowedMethodsHandler(handler, HttpString.tryFromString(HttpMethod.TRACE.name())))
  );
 }
}

示例可重现服务位于https://github.com/ranarula/WebServerCustomizer

标签: javaspring-boot

解决方案


事实上,我也觉得缺乏关于这个主题的信息,但我能够通过遵循文档添加自定义端点来让它工作

你能做的就是把定制器放在spring.factories

org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration=UndertowCustomizer

此类的 javadocs 也可能会有所帮助ManagementContextConfiguration


推荐阅读