当没有给出跟踪参数时,Spring Boot 2包括Stacktrace

时间:2018-04-28 12:38:29

标签: spring-boot

从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

1 个答案:

答案 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以解决问题