Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
a64f2699
Commit
a64f2699
authored
Oct 13, 2020
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Configure Undertow not to presever path on forward by default
Closes gh-23619
parent
809e2c02
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
0 deletions
+47
-0
ServerProperties.java
...ingframework/boot/autoconfigure/web/ServerProperties.java
+13
-0
UndertowServletWebServerFactoryCustomizer.java
...eb/servlet/UndertowServletWebServerFactoryCustomizer.java
+1
-0
UndertowServletWebServerFactoryCustomizerTests.java
...rvlet/UndertowServletWebServerFactoryCustomizerTests.java
+10
-0
UndertowServletWebServerFactory.java
...eb/embedded/undertow/UndertowServletWebServerFactory.java
+23
-0
No files found.
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java
View file @
a64f2699
...
@@ -1548,6 +1548,11 @@ public class ServerProperties {
...
@@ -1548,6 +1548,11 @@ public class ServerProperties {
*/
*/
private
Duration
noRequestTimeout
;
private
Duration
noRequestTimeout
;
/**
* Whether to preserve the path of a request when it is forwarded.
*/
private
boolean
preservePathOnForward
=
false
;
private
final
Accesslog
accesslog
=
new
Accesslog
();
private
final
Accesslog
accesslog
=
new
Accesslog
();
/**
/**
...
@@ -1675,6 +1680,14 @@ public class ServerProperties {
...
@@ -1675,6 +1680,14 @@ public class ServerProperties {
this
.
noRequestTimeout
=
noRequestTimeout
;
this
.
noRequestTimeout
=
noRequestTimeout
;
}
}
public
boolean
isPreservePathOnForward
()
{
return
this
.
preservePathOnForward
;
}
public
void
setPreservePathOnForward
(
boolean
preservePathOnForward
)
{
this
.
preservePathOnForward
=
preservePathOnForward
;
}
public
Accesslog
getAccesslog
()
{
public
Accesslog
getAccesslog
()
{
return
this
.
accesslog
;
return
this
.
accesslog
;
}
}
...
...
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/UndertowServletWebServerFactoryCustomizer.java
View file @
a64f2699
...
@@ -39,6 +39,7 @@ public class UndertowServletWebServerFactoryCustomizer
...
@@ -39,6 +39,7 @@ public class UndertowServletWebServerFactoryCustomizer
@Override
@Override
public
void
customize
(
UndertowServletWebServerFactory
factory
)
{
public
void
customize
(
UndertowServletWebServerFactory
factory
)
{
factory
.
setEagerInitFilters
(
this
.
serverProperties
.
getUndertow
().
isEagerFilterInit
());
factory
.
setEagerInitFilters
(
this
.
serverProperties
.
getUndertow
().
isEagerFilterInit
());
factory
.
setPreservePathOnForward
(
this
.
serverProperties
.
getUndertow
().
isPreservePathOnForward
());
}
}
}
}
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/UndertowServletWebServerFactoryCustomizerTests.java
View file @
a64f2699
...
@@ -40,4 +40,14 @@ class UndertowServletWebServerFactoryCustomizerTests {
...
@@ -40,4 +40,14 @@ class UndertowServletWebServerFactoryCustomizerTests {
assertThat
(
factory
.
isEagerInitFilters
()).
isFalse
();
assertThat
(
factory
.
isEagerInitFilters
()).
isFalse
();
}
}
@Test
void
preservePathOnForwardCanBeEnabled
()
{
UndertowServletWebServerFactory
factory
=
new
UndertowServletWebServerFactory
(
0
);
assertThat
(
factory
.
isPreservePathOnForward
()).
isFalse
();
ServerProperties
serverProperties
=
new
ServerProperties
();
serverProperties
.
getUndertow
().
setPreservePathOnForward
(
true
);
new
UndertowServletWebServerFactoryCustomizer
(
serverProperties
).
customize
(
factory
);
assertThat
(
factory
.
isPreservePathOnForward
()).
isTrue
();
}
}
}
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/undertow/UndertowServletWebServerFactory.java
View file @
a64f2699
...
@@ -93,6 +93,8 @@ public class UndertowServletWebServerFactory extends AbstractServletWebServerFac
...
@@ -93,6 +93,8 @@ public class UndertowServletWebServerFactory extends AbstractServletWebServerFac
private
boolean
eagerInitFilters
=
true
;
private
boolean
eagerInitFilters
=
true
;
private
boolean
preservePathOnForward
=
false
;
/**
/**
* Create a new {@link UndertowServletWebServerFactory} instance.
* Create a new {@link UndertowServletWebServerFactory} instance.
*/
*/
...
@@ -261,6 +263,26 @@ public class UndertowServletWebServerFactory extends AbstractServletWebServerFac
...
@@ -261,6 +263,26 @@ public class UndertowServletWebServerFactory extends AbstractServletWebServerFac
this
.
eagerInitFilters
=
eagerInitFilters
;
this
.
eagerInitFilters
=
eagerInitFilters
;
}
}
/**
* Return where the request path should be preserved on forward.
* @return {@code true} if the path should be preserved when a request is forwarded,
* otherwise {@code false}.
* @since 2.4.0
*/
public
boolean
isPreservePathOnForward
()
{
return
this
.
preservePathOnForward
;
}
/**
* Set whether the request path should be preserved on forward.
* @param preservePathOnForward {@code true} if the path should be preserved when a
* request is forwarded, otherwise {@code false}.
* @since 2.4.0
*/
public
void
setPreservePathOnForward
(
boolean
preservePathOnForward
)
{
this
.
preservePathOnForward
=
preservePathOnForward
;
}
@Override
@Override
public
WebServer
getWebServer
(
ServletContextInitializer
...
initializers
)
{
public
WebServer
getWebServer
(
ServletContextInitializer
...
initializers
)
{
Builder
builder
=
this
.
delegate
.
createBuilder
(
this
);
Builder
builder
=
this
.
delegate
.
createBuilder
(
this
);
...
@@ -283,6 +305,7 @@ public class UndertowServletWebServerFactory extends AbstractServletWebServerFac
...
@@ -283,6 +305,7 @@ public class UndertowServletWebServerFactory extends AbstractServletWebServerFac
deployment
.
setResourceManager
(
getDocumentRootResourceManager
());
deployment
.
setResourceManager
(
getDocumentRootResourceManager
());
deployment
.
setTempDir
(
createTempDir
(
"undertow"
));
deployment
.
setTempDir
(
createTempDir
(
"undertow"
));
deployment
.
setEagerFilterInit
(
this
.
eagerInitFilters
);
deployment
.
setEagerFilterInit
(
this
.
eagerInitFilters
);
deployment
.
setPreservePathOnForward
(
this
.
preservePathOnForward
);
configureMimeMappings
(
deployment
);
configureMimeMappings
(
deployment
);
for
(
UndertowDeploymentInfoCustomizer
customizer
:
this
.
deploymentInfoCustomizers
)
{
for
(
UndertowDeploymentInfoCustomizer
customizer
:
this
.
deploymentInfoCustomizers
)
{
customizer
.
customize
(
deployment
);
customizer
.
customize
(
deployment
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment