diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java index 8fa5921b6..70a1d11f0 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java @@ -12,6 +12,7 @@ import com.netflix.eureka.resources.StatusResource; import com.netflix.eureka.util.StatusInfo; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -26,12 +27,16 @@ import java.util.*; * @author Spencer Gibb */ @Controller +@RequestMapping("${eureka.dashboard.path:/}") public class EurekaController { - @Autowired + @Value("${eureka.dashboard.path:/}") + private String dashboardPath = ""; + + @Autowired ServerProperties serverProperties; - @RequestMapping(value = "/", method = RequestMethod.GET) + @RequestMapping(method = RequestMethod.GET) public String status(HttpServletRequest request, Map model) { populateBase(request, model); @@ -86,6 +91,7 @@ public class EurekaController { model.put("time", new Date()); model.put("basePath", basePath); + model.put("dashboardPath", dashboardPath); populateHeader(model); diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfiguration.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfiguration.java index f2daa4dfb..d4c4bb61a 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfiguration.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfiguration.java @@ -3,6 +3,7 @@ package org.springframework.cloud.netflix.eureka.server; import javax.servlet.Filter; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.embedded.FilterRegistrationBean; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.eureka.EurekaServerConfigBean; @@ -26,6 +27,7 @@ import com.sun.jersey.spi.container.servlet.ServletContainer; public class EurekaServerConfiguration extends WebMvcConfigurerAdapter { @Bean + @ConditionalOnProperty(prefix = "eureka.dashboard", name = "enabled", matchIfMissing = true) public EurekaController eurekaController() { return new EurekaController(); } @@ -36,7 +38,7 @@ public class EurekaServerConfiguration extends WebMvcConfigurerAdapter { bean.setFilter(new ServletContainer()); bean.setOrder(Ordered.LOWEST_PRECEDENCE); bean.addInitParameter("com.sun.jersey.config.property.WebPageContentRegex", - EurekaServerConfigBean.DEFAULT_PREFIX + "/(fonts|images|css)/.*"); + EurekaServerConfigBean.DEFAULT_PREFIX + "/(fonts|images|css|js)/.*"); bean.addInitParameter("com.sun.jersey.config.property.packages", "com.netflix.discovery;com.netflix.eureka"); bean.setUrlPatterns(Lists.newArrayList(EurekaServerConfigBean.DEFAULT_PREFIX diff --git a/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/header.ftl b/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/header.ftl index bafe98bf9..b1be17c2e 100644 --- a/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/header.ftl +++ b/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/header.ftl @@ -1,7 +1,8 @@ +<#import "/spring.ftl" as spring />