Skip to content

Commit 29736e3

Browse files
panchenkowilkinsona
authored andcommitted
Configure ErrorReportValve not to report stack traces
See gh-11790
1 parent 4c001e8 commit 29736e3

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@
3636
import org.apache.catalina.Context;
3737
import org.apache.catalina.connector.Connector;
3838
import org.apache.catalina.valves.AccessLogValve;
39+
import org.apache.catalina.valves.ErrorReportValve;
3940
import org.apache.catalina.valves.RemoteIpValve;
41+
import org.apache.commons.logging.LogFactory;
4042
import org.apache.coyote.AbstractProtocol;
4143
import org.apache.coyote.ProtocolHandler;
4244
import org.apache.coyote.http11.AbstractHttp11Protocol;
@@ -859,6 +861,25 @@ void customizeTomcat(ServerProperties serverProperties,
859861
if (!ObjectUtils.isEmpty(this.additionalTldSkipPatterns)) {
860862
factory.getTldSkipPatterns().addAll(this.additionalTldSkipPatterns);
861863
}
864+
if (serverProperties.getError().getIncludeStacktrace() == ErrorProperties.IncludeStacktrace.NEVER) {
865+
factory.addContextCustomizers(new TomcatContextCustomizer() {
866+
@Override
867+
public void customize(Context context) {
868+
// org.apache.catalina.core.StandardHost() adds ErrorReportValve
869+
// with default options if not there yet, so adding a properly
870+
// configured one.
871+
ErrorReportValve valve = new ErrorReportValve();
872+
valve.setShowServerInfo(false); // disable server name and version
873+
valve.setShowReport(false); // disable exception
874+
if (context.getParent() != null) {
875+
context.getParent().getPipeline().addValve(valve);
876+
} else {
877+
LogFactory.getLog(context.getClass()).warn("Parent of " + context
878+
+ " is not set, skip ErrorReportValve configuration");
879+
}
880+
}
881+
});
882+
}
862883
}
863884

864885
private void customizeAcceptCount(TomcatEmbeddedServletContainerFactory factory) {

spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,8 @@ public void lifecycleEvent(LifecycleEvent event) {
231231

232232
});
233233
ServletContextInitializer[] initializersToUse = mergeInitializers(initializers);
234-
configureContext(context, initializersToUse);
235234
host.addChild(context);
235+
configureContext(context, initializersToUse);
236236
postProcessContext(context);
237237
}
238238

0 commit comments

Comments
 (0)