diff --git a/ruoyi-gateway/pom.xml b/ruoyi-gateway/pom.xml index cfc52654f..ef945e26c 100644 --- a/ruoyi-gateway/pom.xml +++ b/ruoyi-gateway/pom.xml @@ -104,10 +104,10 @@ ${springdoc.version} - - org.springframework - spring-webmvc - + + + + de.codecentric spring-boot-admin-starter-client diff --git a/ruoyi-gateway/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointProperties.java b/ruoyi-gateway/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointProperties.java deleted file mode 100644 index 68e35e6b1..000000000 --- a/ruoyi-gateway/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointProperties.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright 2012-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.actuate.autoconfigure.endpoint.web; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Set; - -/** - * Configuration properties for web management endpoints. - * - * @author Madhura Bhave - * @author Phillip Webb - * @since 2.0.0 - */ -@ConfigurationProperties(prefix = "management.endpoints.web") -public class WebEndpointProperties { - - private final Exposure exposure = new Exposure(); - - /** - * Base path for Web endpoints. Relative to the servlet context path - * (server.servlet.context-path) or WebFlux base path (spring.webflux.base-path) when - * the management server is sharing the main server port. Relative to the management - * server base path (management.server.base-path) when a separate management server - * port (management.server.port) is configured. - */ - private String basePath = "/actuator"; - private String baseUrl = null; - - /** - * Mapping between endpoint IDs and the path that should expose them. - */ - private final Map pathMapping = new LinkedHashMap<>(); - - private final Discovery discovery = new Discovery(); - - public Exposure getExposure() { - return this.exposure; - } - - public String getBasePath() { - return this.basePath; - } - - public void setBasePath(String basePath) { - Assert.isTrue(basePath.isEmpty() || basePath.startsWith("/"), "Base path must start with '/' or be empty"); - this.basePath = cleanBasePath(basePath); - } - - public String getBaseUrl() { - return baseUrl; - } - - public void setBaseUrl(String baseUrl) { - this.baseUrl = baseUrl; - } - - private String cleanBasePath(String basePath) { - if (StringUtils.hasText(basePath) && basePath.endsWith("/")) { - return basePath.substring(0, basePath.length() - 1); - } - return basePath; - } - - public Map getPathMapping() { - return this.pathMapping; - } - - public Discovery getDiscovery() { - return this.discovery; - } - - public static class Exposure { - - /** - * Endpoint IDs that should be included or '*' for all. - */ - private Set include = new LinkedHashSet<>(); - - /** - * Endpoint IDs that should be excluded or '*' for all. - */ - private Set exclude = new LinkedHashSet<>(); - - public Set getInclude() { - return this.include; - } - - public void setInclude(Set include) { - this.include = include; - } - - public Set getExclude() { - return this.exclude; - } - - public void setExclude(Set exclude) { - this.exclude = exclude; - } - - } - - public static class Discovery { - - /** - * Whether the discovery page is enabled. - */ - private boolean enabled = true; - - public boolean isEnabled() { - return this.enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - } - -} diff --git a/ruoyi-gateway/src/main/java/org/springframework/boot/actuate/endpoint/web/servlet/WebMvcEndpointHandlerMapping.java b/ruoyi-gateway/src/main/java/org/springframework/boot/actuate/endpoint/web/servlet/WebMvcEndpointHandlerMapping.java deleted file mode 100644 index 1c7dae1bb..000000000 --- a/ruoyi-gateway/src/main/java/org/springframework/boot/actuate/endpoint/web/servlet/WebMvcEndpointHandlerMapping.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2012-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.actuate.endpoint.web.servlet; - -import org.apache.commons.lang3.ObjectUtils; -import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties; -import org.springframework.boot.actuate.endpoint.web.*; -import org.springframework.context.annotation.Lazy; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.servlet.HandlerMapping; -import org.springframework.web.util.pattern.PathPatternParser; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.Collection; -import java.util.Collections; -import java.util.Map; - -/** - * A custom {@link HandlerMapping} that makes web endpoints available over HTTP using - * Spring MVC. - * - * @author Andy Wilkinson - * @author Phillip Webb - * @since 2.0.0 - */ -public class WebMvcEndpointHandlerMapping extends AbstractWebMvcEndpointHandlerMapping { - - private final EndpointLinksResolver linksResolver; - @Lazy - @Resource - private WebEndpointProperties webEndpointProperties; - - /** - * Creates a new {@code WebMvcEndpointHandlerMapping} instance that provides mappings - * for the given endpoints. - * @param endpointMapping the base mapping for all endpoints - * @param endpoints the web endpoints - * @param endpointMediaTypes media types consumed and produced by the endpoints - * @param corsConfiguration the CORS configuration for the endpoints or {@code null} - * @param linksResolver resolver for determining links to available endpoints - * @param shouldRegisterLinksMapping whether the links endpoint should be registered - */ - public WebMvcEndpointHandlerMapping(EndpointMapping endpointMapping, Collection endpoints, - EndpointMediaTypes endpointMediaTypes, CorsConfiguration corsConfiguration, - EndpointLinksResolver linksResolver, boolean shouldRegisterLinksMapping) { - super(endpointMapping, endpoints, endpointMediaTypes, corsConfiguration, shouldRegisterLinksMapping); - this.linksResolver = linksResolver; - setOrder(-100); - } - - /** - * Creates a new {@code WebMvcEndpointHandlerMapping} instance that provides mappings - * for the given endpoints. - * @param endpointMapping the base mapping for all endpoints - * @param endpoints the web endpoints - * @param endpointMediaTypes media types consumed and produced by the endpoints - * @param corsConfiguration the CORS configuration for the endpoints or {@code null} - * @param linksResolver resolver for determining links to available endpoints - * @param shouldRegisterLinksMapping whether the links endpoint should be registered - * @param pathPatternParser the path pattern parser - */ - public WebMvcEndpointHandlerMapping(EndpointMapping endpointMapping, Collection endpoints, - EndpointMediaTypes endpointMediaTypes, CorsConfiguration corsConfiguration, - EndpointLinksResolver linksResolver, boolean shouldRegisterLinksMapping, - PathPatternParser pathPatternParser) { - super(endpointMapping, endpoints, endpointMediaTypes, corsConfiguration, shouldRegisterLinksMapping, - pathPatternParser); - this.linksResolver = linksResolver; - setOrder(-100); - } - - @Override - protected LinksHandler getLinksHandler() { - return new WebMvcLinksHandler(); - } - - /** - * Handler for root endpoint providing links. - */ - class WebMvcLinksHandler implements LinksHandler { - - @Override - @ResponseBody - public Map> links(HttpServletRequest request, HttpServletResponse response) { - return Collections.singletonMap("_links", - WebMvcEndpointHandlerMapping.this.linksResolver.resolveLinks(ObjectUtils.isEmpty(webEndpointProperties.getBaseUrl())?request.getRequestURL().toString():(webEndpointProperties.getBaseUrl()+webEndpointProperties.getBasePath()))); - } - - @Override - public String toString() { - return "Actuator root web endpoint"; - } - - } - -}