gpt4 book ai didi

tomcat - Spring 启动 : enable HTTP TRACE method for embedded Tomcat

转载 作者:行者123 更新时间:2023-11-28 22:06:04 34 4
gpt4 key购买 nike

独立 Tomcat 允许您通过 allowTrace 属性启用 TRACE HTTP 方法:

allowTrace - A boolean value which can be used to enable or disable the TRACE HTTP method. If not specified, this attribute is set to false.

如果我必须对使用嵌入式 Tomcat 的 Spring Boot 项目执行同样的操作 - 我可以为此使用哪种配置/属性设置?

我已经为 Tomcat 服务器寻找了 Spring Boot 支持的属性:

properties supported by spring boot for tomcat server

但是好像没有列出来。任何想法如何实现这一目标。

最佳答案

您可以通过编程方式配置 Connector.allowTrace 属性。在这种情况下,您必须为类 EmbeddedServletContainerFactory 定义 bean并通过调用 TomcatEmbeddedServletContainerFactory.addConnectorCustomizers(...) 添加连接器定制器方法。它允许您访问 Connector对象并调用您需要的任何配置方法。在这种情况下,我们只需调用 connector.setAllowTrace(true):

import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TomcatConfiguration {

@Bean
public EmbeddedServletContainerFactory embeddedServletContainerFactory() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();

factory.addConnectorCustomizers(connector -> {
connector.setAllowTrace(true);
});
return factory;
}
}

您可以在单独的配置类中配置此 bean(如上例所示),或者您可以简单地将此 bean 方法添加到您的主 Spring Boot 应用程序类中。

难道不能用server.tomcat.*这样的属性来完成吗?

此时此刻 - 不。当前的 Spring Boot 版本 (1.5.9-RELEASE) 不允许使用简单的属性进行设置。所有带有 server.tomcat 前缀的属性都自动映射到类 org.springframework.boot.autoconfigure.web.ServerProperties.Tomcat .如果您查看它的 javadoc(或您的 IDE 中的源代码),您会发现没有像 setAllowTrace(boolean value) 或类似的方法。

关于tomcat - Spring 启动 : enable HTTP TRACE method for embedded Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48397996/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com