Commit 29736e34 authored by Alex Panchenko's avatar Alex Panchenko Committed by Andy Wilkinson

Configure ErrorReportValve not to report stack traces

See gh-11790
parent 4c001e8d
...@@ -36,7 +36,9 @@ import io.undertow.UndertowOptions; ...@@ -36,7 +36,9 @@ import io.undertow.UndertowOptions;
import org.apache.catalina.Context; import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector; import org.apache.catalina.connector.Connector;
import org.apache.catalina.valves.AccessLogValve; import org.apache.catalina.valves.AccessLogValve;
import org.apache.catalina.valves.ErrorReportValve;
import org.apache.catalina.valves.RemoteIpValve; import org.apache.catalina.valves.RemoteIpValve;
import org.apache.commons.logging.LogFactory;
import org.apache.coyote.AbstractProtocol; import org.apache.coyote.AbstractProtocol;
import org.apache.coyote.ProtocolHandler; import org.apache.coyote.ProtocolHandler;
import org.apache.coyote.http11.AbstractHttp11Protocol; import org.apache.coyote.http11.AbstractHttp11Protocol;
...@@ -859,6 +861,25 @@ public class ServerProperties ...@@ -859,6 +861,25 @@ public class ServerProperties
if (!ObjectUtils.isEmpty(this.additionalTldSkipPatterns)) { if (!ObjectUtils.isEmpty(this.additionalTldSkipPatterns)) {
factory.getTldSkipPatterns().addAll(this.additionalTldSkipPatterns); factory.getTldSkipPatterns().addAll(this.additionalTldSkipPatterns);
} }
if (serverProperties.getError().getIncludeStacktrace() == ErrorProperties.IncludeStacktrace.NEVER) {
factory.addContextCustomizers(new TomcatContextCustomizer() {
@Override
public void customize(Context context) {
// org.apache.catalina.core.StandardHost() adds ErrorReportValve
// with default options if not there yet, so adding a properly
// configured one.
ErrorReportValve valve = new ErrorReportValve();
valve.setShowServerInfo(false); // disable server name and version
valve.setShowReport(false); // disable exception
if (context.getParent() != null) {
context.getParent().getPipeline().addValve(valve);
} else {
LogFactory.getLog(context.getClass()).warn("Parent of " + context
+ " is not set, skip ErrorReportValve configuration");
}
}
});
}
} }
private void customizeAcceptCount(TomcatEmbeddedServletContainerFactory factory) { private void customizeAcceptCount(TomcatEmbeddedServletContainerFactory factory) {
......
...@@ -231,8 +231,8 @@ public class TomcatEmbeddedServletContainerFactory ...@@ -231,8 +231,8 @@ public class TomcatEmbeddedServletContainerFactory
}); });
ServletContextInitializer[] initializersToUse = mergeInitializers(initializers); ServletContextInitializer[] initializersToUse = mergeInitializers(initializers);
configureContext(context, initializersToUse);
host.addChild(context); host.addChild(context);
configureContext(context, initializersToUse);
postProcessContext(context); postProcessContext(context);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment