diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/reactive/EndpointRequest.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/reactive/EndpointRequest.java index 2801342b2d..7d98fdeb2f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/reactive/EndpointRequest.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/reactive/EndpointRequest.java @@ -130,6 +130,8 @@ public final class EndpointRequest { private volatile ServerWebExchangeMatcher delegate; + private static ManagementPortType managementPortType; + private EndpointServerWebExchangeMatcher(boolean includeLinks) { this(Collections.emptyList(), Collections.emptyList(), includeLinks); } @@ -231,7 +233,10 @@ public final class EndpointRequest { static boolean isManagementContext(ServerWebExchange exchange) { 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) { return false; } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/servlet/EndpointRequest.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/servlet/EndpointRequest.java index eef4c055ce..fc88ba4b32 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/servlet/EndpointRequest.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/servlet/EndpointRequest.java @@ -124,14 +124,18 @@ public final class EndpointRequest { private volatile RequestMatcher delegate; + private static ManagementPortType managementPortType; + AbstractRequestMatcher() { super(WebApplicationContext.class); } @Override protected boolean ignoreApplicationContext(WebApplicationContext applicationContext) { - ManagementPortType type = ManagementPortType.get(applicationContext.getEnvironment()); - return type == ManagementPortType.DIFFERENT + if (managementPortType == null) { + managementPortType = ManagementPortType.get(applicationContext.getEnvironment()); + } + return managementPortType == ManagementPortType.DIFFERENT && !WebServerApplicationContext.hasServerNamespace(applicationContext, "management"); }