Merge branch '2.2.x'

Closes gh-20331
This commit is contained in:
Madhura Bhave 2020-02-26 15:00:49 -08:00
commit 250493d681
2 changed files with 12 additions and 3 deletions

View File

@ -130,6 +130,8 @@ public final class EndpointRequest {
private volatile ServerWebExchangeMatcher delegate; private volatile ServerWebExchangeMatcher delegate;
private static ManagementPortType managementPortType;
private EndpointServerWebExchangeMatcher(boolean includeLinks) { private EndpointServerWebExchangeMatcher(boolean includeLinks) {
this(Collections.emptyList(), Collections.emptyList(), includeLinks); this(Collections.emptyList(), Collections.emptyList(), includeLinks);
} }
@ -231,7 +233,10 @@ public final class EndpointRequest {
static boolean isManagementContext(ServerWebExchange exchange) { static boolean isManagementContext(ServerWebExchange exchange) {
ApplicationContext applicationContext = exchange.getApplicationContext(); ApplicationContext applicationContext = exchange.getApplicationContext();
if (ManagementPortType.get(applicationContext.getEnvironment()) == ManagementPortType.DIFFERENT) { if (managementPortType == null) {
managementPortType = ManagementPortType.get(applicationContext.getEnvironment());
}
if (managementPortType == ManagementPortType.DIFFERENT) {
if (applicationContext.getParent() == null) { if (applicationContext.getParent() == null) {
return false; return false;
} }

View File

@ -124,14 +124,18 @@ public final class EndpointRequest {
private volatile RequestMatcher delegate; private volatile RequestMatcher delegate;
private static ManagementPortType managementPortType;
AbstractRequestMatcher() { AbstractRequestMatcher() {
super(WebApplicationContext.class); super(WebApplicationContext.class);
} }
@Override @Override
protected boolean ignoreApplicationContext(WebApplicationContext applicationContext) { protected boolean ignoreApplicationContext(WebApplicationContext applicationContext) {
ManagementPortType type = ManagementPortType.get(applicationContext.getEnvironment()); if (managementPortType == null) {
return type == ManagementPortType.DIFFERENT managementPortType = ManagementPortType.get(applicationContext.getEnvironment());
}
return managementPortType == ManagementPortType.DIFFERENT
&& !WebServerApplicationContext.hasServerNamespace(applicationContext, "management"); && !WebServerApplicationContext.hasServerNamespace(applicationContext, "management");
} }