Fail fast when base path and an endpoint mapping are set to '/'
Throw an exception if actuator is running on the main server port and the base path and an individual mapping are set to '/'. See gh-45251 Signed-off-by: yongjunhong <dev.yongjunh@gmail.com>
This commit is contained in:
committed by
Phillip Webb
parent
c46d19f126
commit
8f535b266c
@@ -69,6 +69,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Phillip Webb
|
||||
* @author Yongjun Hong
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@ManagementContextConfiguration(proxyBeanMethods = false)
|
||||
@@ -93,6 +94,18 @@ public class WebMvcEndpointManagementContextConfiguration {
|
||||
allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
|
||||
String basePath = webEndpointProperties.getBasePath();
|
||||
EndpointMapping endpointMapping = new EndpointMapping(basePath);
|
||||
|
||||
if (basePath.isEmpty() && ManagementPortType.get(environment).equals(ManagementPortType.SAME)) {
|
||||
for (ExposableWebEndpoint endpoint : webEndpoints) {
|
||||
if ("/".equals(endpoint.getRootPath())) {
|
||||
throw new IllegalStateException(
|
||||
"Management endpoints and endpoint path are both mapped to '/' on the server port which will "
|
||||
+ "block access to other endpoints. Please use a different path for management endpoints or "
|
||||
+ "map them to a dedicated management port.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean shouldRegisterLinksMapping = shouldRegisterLinksMapping(webEndpointProperties, environment, basePath);
|
||||
return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes,
|
||||
corsProperties.toCorsConfiguration(), new EndpointLinksResolver(allEndpoints, basePath),
|
||||
|
||||
Reference in New Issue
Block a user