以下URL用于在Sping Boot 2.5中返回200
http://localhost:8080//actuator/health
升级到2.6后,它不再工作,并返回404 Not Found
我发现了这个错误,因为项目的一些集成测试失败了(请求返回404)。然后我注意到了双斜杠,在删除它之后,问题得到了解决。
我只是想知道是什么特征导致了这种新行为?
我把2.6 release notes检查了几次,但没有任何印象。
以下URL用于在Sping Boot 2.5中返回200
http://localhost:8080//actuator/health
升级到2.6后,它不再工作,并返回404 Not Found
我发现了这个错误,因为项目的一些集成测试失败了(请求返回404)。然后我注意到了双斜杠,在删除它之后,问题得到了解决。
我只是想知道是什么特征导致了这种新行为?
我把2.6 release notes检查了几次,但没有任何印象。
4条答案
按热度按时间lnvxswe21#
问题是路径匹配策略已更改。执行器路径模式不能被
字符串
解决方案是手动修复包含双斜杠的URL。
dwbf0jvd2#
1.您是否可以使用单斜杠访问执行器端点?如http://localhost:8080/actuator/health
1.如果是,那么你是否为你的应用程序配置了Spring Security ?你可以定义一个配置,你的应用程序将允许url中的连续斜杠。
字符串
xpcnnkqh3#
这可能是原因:基于PathPattern的Spring MVC路径匹配策略
根据注册的Spring MVC处理程序Map匹配请求路径的默认策略已从AntPathMatcher更改为PathPatternParser。
修复:
字符串
agyaoht74#
在 Spring Boot 3上测试:
1.创建
RequestRejectedException
处理程序:字符串
它将拦截
RequestRejectedException
,在这里您可以自定义http状态并添加一些用于异常识别的附加信息,这些信息将在接下来的步骤中使用。/error
端点,这也是你需要实现的。创建如下内容:型
1.最后将
/error
端点添加到spring WebSecurity配置排除列表中:型
1.对于集成测试:使用
WebTestClient
实现它们。