Java 自定义Spring引导HTTP跟踪禁用错误响应

Java 自定义Spring引导HTTP跟踪禁用错误响应,java,spring-boot,Java,Spring Boot,一家安全公司已经为我们的Spring Boot 2.3.4应用程序标记了发送HTTP跟踪请求时返回的错误响应。我们使用的是Tomcat容器,默认情况下已经禁用了HTTP跟踪,但是响应中确实包含跟踪信息。这是输出: $ curl -k -i -X TRACE --cookie "VULNERABLE=Yes" http://localhost:9090 HTTP/1.1 405 Allow: HEAD, DELETE, POST, GET, OPTIONS, PUT Cont

一家安全公司已经为我们的Spring Boot 2.3.4应用程序标记了发送HTTP跟踪请求时返回的错误响应。我们使用的是Tomcat容器,默认情况下已经禁用了HTTP跟踪,但是响应中确实包含跟踪信息。这是输出:

$ curl -k -i -X TRACE --cookie "VULNERABLE=Yes" http://localhost:9090

HTTP/1.1 405
Allow: HEAD, DELETE, POST, GET, OPTIONS, PUT
Content-Type: message/http
Content-Length: 116
Date: Fri, 16 Oct 2020 20:41:51 GMT

TRACE /error HTTP/1.1
host: localhost:9090
user-agent: curl/7.64.1
accept: */*
cookie: VULNERABLE=Yes
我能够改变这一点的唯一方法是在带有“@configuration”注释的配置类中使用此代码启用HTTP跟踪请求:

来自同一curl请求的响应为:

HTTP/1.1 405 
Content-Type: message/http;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Thu, 12 Nov 2020 19:11:13 GMT

TRACE method not allowed
有没有人遇到过类似的问题?似乎仅仅为了能够更改响应主体而启用跟踪不是一个好主意。

您可以设置

spring.mvc.dispatch-trace-request: true
在你的应用程序中

然后,“org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController” 将创建没有任何跟踪信息的错误响应

问候。

您可以设置

spring.mvc.dispatch-trace-request: true
在你的应用程序中

然后,“org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController” 将创建没有任何跟踪信息的错误响应


注意。

在spring boot中有3种方法可以做到这一点,请检查在spring boot中有3种方法可以做到这一点,请检查
spring.mvc.dispatch-trace-request: true