从Spring Boot 1.5.12升级到2.0.1后,系统在出现错误的情况下包含堆栈跟踪,即使跟踪参数" trace"未在URL中指定(或使用无效值错误地指定)。
我已配置
server.error.include-堆栈跟踪=迹线上-PARAM
在我的application.properties中。
当我调用我的应用程序时,会抛出错误,通过http://localhost/myApp系统返回填充的跟踪。
当我通过http://localhost/myApp?trace=false致电时,它没有。
当我通过http://localhost/myApp?trace=hugo调用它时,它也会http://localhost/myApp?trace=true调用它。
在Spring Boot 1下不是这种情况。只有当一个指定的trace = true时,系统才会包含堆栈跟踪,这是预期的行为。
此行为是否从版本1更改为2?
Ciao,Michael
答案 0 :(得分:1)
这是springboot2.0.3中的代码
protected boolean getTraceParameter(HttpServletRequest request) {
String parameter = request.getParameter("trace");
return !"false".equalsIgnoreCase(parameter);
}
在springboot2.1
protected boolean getTraceParameter(HttpServletRequest request) {
String parameter = request.getParameter("trace");
if (parameter == null) {
return false;
}
return !"false".equalsIgnoreCase(parameter);
}
将springboot版本升级到2.1以解决问题