From 27baef9c8da0035911f9f4550cbd8abcba7e1fec Mon Sep 17 00:00:00 2001 From: Bartosz Spyrko-Smietanko Date: Fri, 22 Feb 2019 11:47:39 +0000 Subject: [PATCH] [WFLY-11764] Make getServletPath return action name or jsp name configurable --- .../wildfly/extension/undertow/ServletContainerAdd.java | 4 +++- .../extension/undertow/ServletContainerService.java | 9 ++++++++- .../deployment/UndertowDeploymentInfoService.java | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/undertow/src/main/java/org/wildfly/extension/undertow/ServletContainerAdd.java b/undertow/src/main/java/org/wildfly/extension/undertow/ServletContainerAdd.java index 5ce4b9625151..ae702697d897 100644 --- a/undertow/src/main/java/org/wildfly/extension/undertow/ServletContainerAdd.java +++ b/undertow/src/main/java/org/wildfly/extension/undertow/ServletContainerAdd.java @@ -92,6 +92,7 @@ public void installRuntimeServices(OperationContext context, ModelNode model, St final ModelNode fileCacheTtlNode = ServletContainerDefinition.FILE_CACHE_TIME_TO_LIVE.resolveModelAttribute(context, model); final Integer fileCacheTimeToLive = fileCacheTtlNode.isDefined() ? fileCacheTtlNode.asInt() : null; final int defaultCookieVersion = ServletContainerDefinition.DEFAULT_COOKIE_VERSION.resolveModelAttribute(context, model).asInt(); + final boolean preservePathOnForward = Boolean.parseBoolean(System.getProperty("io.undertow.servlet.dispatch.preserve_path_of_forward", "false")); Boolean directoryListingEnabled = null; if(model.hasDefined(Constants.DIRECTORY_LISTING)) { @@ -138,7 +139,8 @@ public void installRuntimeServices(OperationContext context, ModelNode model, St disableCachingForSecuredPages, webSocketInfo != null, webSocketInfo != null && webSocketInfo.isDispatchToWorker(), webSocketInfo != null && webSocketInfo.isPerMessageDeflate(), webSocketInfo == null ? -1 : webSocketInfo.getDeflaterLevel(), mimeMappings, - welcomeFiles, directoryListingEnabled, proactiveAuth, sessionIdLength, authenticationMechanisms, maxSessions, crawlerSessionManagerConfig, disableFileWatchService, disableSessionIdReususe, fileCacheMetadataSize, fileCacheMaxFileSize, fileCacheTimeToLive, defaultCookieVersion); + welcomeFiles, directoryListingEnabled, proactiveAuth, sessionIdLength, authenticationMechanisms, maxSessions, crawlerSessionManagerConfig, disableFileWatchService, disableSessionIdReususe, fileCacheMetadataSize, fileCacheMaxFileSize, fileCacheTimeToLive, defaultCookieVersion, + preservePathOnForward); final CapabilityServiceBuilder builder = context.getCapabilityServiceTarget() diff --git a/undertow/src/main/java/org/wildfly/extension/undertow/ServletContainerService.java b/undertow/src/main/java/org/wildfly/extension/undertow/ServletContainerService.java index a0b438911dbc..c310c5547c76 100644 --- a/undertow/src/main/java/org/wildfly/extension/undertow/ServletContainerService.java +++ b/undertow/src/main/java/org/wildfly/extension/undertow/ServletContainerService.java @@ -85,13 +85,15 @@ public class ServletContainerService implements Service private final int fileCacheMaxFileSize; private final Integer fileCacheTimeToLive; private final int defaultCookieVersion; + private boolean preservePathOnForward; public ServletContainerService(boolean allowNonStandardWrappers, ServletStackTraces stackTraces, SessionCookieConfig sessionCookieConfig, JSPConfig jspConfig, String defaultEncoding, boolean useListenerEncoding, boolean ignoreFlush, boolean eagerFilterInit, int defaultSessionTimeout, boolean disableCachingForSecuredPages, boolean websocketsEnabled, boolean dispatchWebsocketInvocationToWorker, boolean perMessageDeflate, int deflaterLevel, Map mimeMappings, List welcomeFiles, Boolean directoryListingEnabled, boolean proactiveAuth, int sessionIdLength, Map authenticationMechanisms, Integer maxSessions, - CrawlerSessionManagerConfig crawlerSessionManagerConfig, boolean disableFileWatchService, boolean disableSessionIdReuse, int fileCacheMetadataSize, int fileCacheMaxFileSize, Integer fileCacheTimeToLive, int defaultCookieVersion) { + CrawlerSessionManagerConfig crawlerSessionManagerConfig, boolean disableFileWatchService, boolean disableSessionIdReuse, int fileCacheMetadataSize, int fileCacheMaxFileSize, Integer fileCacheTimeToLive, int defaultCookieVersion, + boolean preservePathOnForward) { this.allowNonStandardWrappers = allowNonStandardWrappers; this.stackTraces = stackTraces; @@ -121,6 +123,7 @@ public ServletContainerService(boolean allowNonStandardWrappers, ServletStackTra this.fileCacheMaxFileSize = fileCacheMaxFileSize; this.fileCacheTimeToLive = fileCacheTimeToLive; this.defaultCookieVersion = defaultCookieVersion; + this.preservePathOnForward = preservePathOnForward; } @Override @@ -278,4 +281,8 @@ public Integer getFileCacheTimeToLive() { public int getDefaultCookieVersion() { return defaultCookieVersion; } + + public boolean isPreservePathOnForward() { + return preservePathOnForward; + } } diff --git a/undertow/src/main/java/org/wildfly/extension/undertow/deployment/UndertowDeploymentInfoService.java b/undertow/src/main/java/org/wildfly/extension/undertow/deployment/UndertowDeploymentInfoService.java index c2e65a860b2a..912a2719572e 100644 --- a/undertow/src/main/java/org/wildfly/extension/undertow/deployment/UndertowDeploymentInfoService.java +++ b/undertow/src/main/java/org/wildfly/extension/undertow/deployment/UndertowDeploymentInfoService.java @@ -1083,6 +1083,8 @@ public HttpHandler wrap(HttpHandler handler) { } d.setCrawlerSessionManagerConfig(servletContainer.getCrawlerSessionManagerConfig()); + d.setPreservePathOnForward(servletContainer.isPreservePathOnForward()); + return d; } catch (ClassNotFoundException e) { throw new StartException(e);