Commit d2d71934 authored by Phillip Webb's avatar Phillip Webb

Polish

parent 539b009d
...@@ -115,12 +115,14 @@ public class ManagementServerProperties implements SecurityPrerequisite { ...@@ -115,12 +115,14 @@ public class ManagementServerProperties implements SecurityPrerequisite {
} }
public void setContextPath(String contextPath) { public void setContextPath(String contextPath) {
this.contextPath = cleanContextPath(contextPath);
}
private String cleanContextPath(String contextPath) {
if (StringUtils.hasText(contextPath) && contextPath.endsWith("/")) { if (StringUtils.hasText(contextPath) && contextPath.endsWith("/")) {
this.contextPath = contextPath.substring(0, contextPath.length() - 1); return contextPath.substring(0, contextPath.length() - 1);
}
else {
this.contextPath = contextPath;
} }
return contextPath;
} }
public Security getSecurity() { public Security getSecurity() {
......
...@@ -46,7 +46,7 @@ import org.springframework.web.servlet.HandlerMapping; ...@@ -46,7 +46,7 @@ import org.springframework.web.servlet.HandlerMapping;
@ConditionalOnClass({ Servlet.class, ServletRegistration.class, @ConditionalOnClass({ Servlet.class, ServletRegistration.class,
OncePerRequestFilter.class, HandlerMapping.class }) OncePerRequestFilter.class, HandlerMapping.class })
@AutoConfigureAfter(MetricRepositoryAutoConfiguration.class) @AutoConfigureAfter(MetricRepositoryAutoConfiguration.class)
@ConditionalOnProperty(name="endpoints.metrics.filter.enabled", matchIfMissing=true) @ConditionalOnProperty(name = "endpoints.metrics.filter.enabled", matchIfMissing = true)
public class MetricFilterAutoConfiguration { public class MetricFilterAutoConfiguration {
@Autowired @Autowired
...@@ -59,4 +59,5 @@ public class MetricFilterAutoConfiguration { ...@@ -59,4 +59,5 @@ public class MetricFilterAutoConfiguration {
public Filter metricFilter() { public Filter metricFilter() {
return new MetricsFilter(this.counterService, this.gaugeService); return new MetricsFilter(this.counterService, this.gaugeService);
} }
} }
...@@ -30,6 +30,7 @@ import org.springframework.boot.actuate.metrics.GaugeService; ...@@ -30,6 +30,7 @@ import org.springframework.boot.actuate.metrics.GaugeService;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.HttpStatus.Series;
import org.springframework.util.StopWatch; import org.springframework.util.StopWatch;
import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.servlet.HandlerMapping; import org.springframework.web.servlet.HandlerMapping;
...@@ -96,10 +97,8 @@ final class MetricsFilter extends OncePerRequestFilter { ...@@ -96,10 +97,8 @@ final class MetricsFilter extends OncePerRequestFilter {
if (bestMatchingPattern != null) { if (bestMatchingPattern != null) {
return fixSpecialCharacters(bestMatchingPattern.toString()); return fixSpecialCharacters(bestMatchingPattern.toString());
} }
if (is4xxClientError(status)) { Series series = getSeries(status);
return UNKNOWN_PATH_SUFFIX; if (Series.CLIENT_ERROR.equals(series) || Series.REDIRECTION.equals(series)) {
}
if (is3xxRedirection(status)) {
return UNKNOWN_PATH_SUFFIX; return UNKNOWN_PATH_SUFFIX;
} }
return path; return path;
...@@ -120,22 +119,14 @@ final class MetricsFilter extends OncePerRequestFilter { ...@@ -120,22 +119,14 @@ final class MetricsFilter extends OncePerRequestFilter {
return result; return result;
} }
private boolean is4xxClientError(int status) { private Series getSeries(int status) {
try { try {
return HttpStatus.valueOf(status).is4xxClientError(); return HttpStatus.valueOf(status).series();
} }
catch (Exception ex) { catch (Exception ex) {
return false; return null;
} }
}
private boolean is3xxRedirection(int status) {
try {
return HttpStatus.valueOf(status).is3xxRedirection();
}
catch (Exception ex) {
return false;
}
} }
private String getKey(String string) { private String getKey(String string) {
......
...@@ -16,19 +16,6 @@ ...@@ -16,19 +16,6 @@
package org.springframework.boot.actuate.autoconfigure; package org.springframework.boot.actuate.autoconfigure;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.willAnswer;
import static org.mockito.BDDMockito.willThrow;
import static org.mockito.Matchers.anyDouble;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.io.IOException; import java.io.IOException;
import javax.servlet.Filter; import javax.servlet.Filter;
...@@ -60,6 +47,19 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -60,6 +47,19 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.util.NestedServletException; import org.springframework.web.util.NestedServletException;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.willAnswer;
import static org.mockito.BDDMockito.willThrow;
import static org.mockito.Matchers.anyDouble;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
/** /**
* Tests for {@link MetricFilterAutoConfiguration}. * Tests for {@link MetricFilterAutoConfiguration}.
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment