Commit dbf09de2 authored by Phillip Webb's avatar Phillip Webb

Merge branch '2.0.x'

parents 5825502c e87664f2
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
...@@ -258,6 +259,11 @@ ...@@ -258,6 +259,11 @@
<artifactId>aspectjweaver</artifactId> <artifactId>aspectjweaver</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<optional>true</optional>
</dependency>
<dependency> <dependency>
<groupId>org.elasticsearch</groupId> <groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId> <artifactId>elasticsearch</artifactId>
...@@ -602,20 +608,27 @@ ...@@ -602,20 +608,27 @@
<configuration> <configuration>
<exportAntProperties>true</exportAntProperties> <exportAntProperties>true</exportAntProperties>
<target> <target>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" /> <taskdef
<taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask" /> resource="net/sf/antcontrib/antcontrib.properties" />
<taskdef name="stringutil"
classname="ise.antelope.tasks.StringUtilTask" />
<var name="version-type" value="${project.version}" /> <var name="version-type" value="${project.version}" />
<propertyregex property="version-type" override="true" <propertyregex property="version-type"
input="${version-type}" regexp=".*\.(.*)" replace="\1" /> override="true" input="${version-type}" regexp=".*\.(.*)"
<propertyregex property="version-type" override="true" replace="\1" />
input="${version-type}" regexp="(M)\d+" replace="MILESTONE" /> <propertyregex property="version-type"
<propertyregex property="version-type" override="true" override="true" input="${version-type}" regexp="(M)\d+"
input="${version-type}" regexp="(RC)\d+" replace="MILESTONE" /> replace="MILESTONE" />
<propertyregex property="version-type" override="true" <propertyregex property="version-type"
input="${version-type}" regexp="BUILD-(.*)" replace="SNAPSHOT" /> override="true" input="${version-type}" regexp="(RC)\d+"
replace="MILESTONE" />
<propertyregex property="version-type"
override="true" input="${version-type}" regexp="BUILD-(.*)"
replace="SNAPSHOT" />
<var name="github-tag" value="v${project.version}" /> <var name="github-tag" value="v${project.version}" />
<propertyregex property="github-tag" override="true" <propertyregex property="github-tag"
input="${github-tag}" regexp=".*SNAPSHOT" replace="master" /> override="true" input="${github-tag}" regexp=".*SNAPSHOT"
replace="master" />
</target> </target>
</configuration> </configuration>
</execution> </execution>
...@@ -629,10 +642,12 @@ ...@@ -629,10 +642,12 @@
<target> <target>
<zip <zip
destfile="${project.build.directory}/${project.artifactId}-${project.version}-docs.zip"> destfile="${project.build.directory}/${project.artifactId}-${project.version}-docs.zip">
<zipfileset dir="${project.build.directory}/generated-docs" <zipfileset
dir="${project.build.directory}/generated-docs"
includes="index.html" prefix="html" /> includes="index.html" prefix="html" />
<mappedresources> <mappedresources>
<fileset dir="${project.build.directory}/generated-docs" <fileset
dir="${project.build.directory}/generated-docs"
includes="index.pdf" /> includes="index.pdf" />
<globmapper from="index.pdf" <globmapper from="index.pdf"
to="pdf/spring-boot-actuator-web-api.pdf" /> to="pdf/spring-boot-actuator-web-api.pdf" />
......
...@@ -16,10 +16,15 @@ ...@@ -16,10 +16,15 @@
package org.springframework.boot.actuate.autoconfigure.web.servlet; package org.springframework.boot.actuate.autoconfigure.web.servlet;
import java.io.File;
import javax.servlet.Filter; import javax.servlet.Filter;
import org.apache.catalina.Valve; import org.apache.catalina.Valve;
import org.apache.catalina.valves.AccessLogValve; import org.apache.catalina.valves.AccessLogValve;
import org.eclipse.jetty.server.NCSARequestLog;
import org.eclipse.jetty.server.RequestLog;
import org.eclipse.jetty.server.Server;
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.HierarchicalBeanFactory; import org.springframework.beans.factory.HierarchicalBeanFactory;
...@@ -39,6 +44,7 @@ import org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactor ...@@ -39,6 +44,7 @@ import org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactor
import org.springframework.boot.autoconfigure.web.embedded.UndertowWebServerFactoryCustomizer; import org.springframework.boot.autoconfigure.web.embedded.UndertowWebServerFactoryCustomizer;
import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryCustomizer; import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryCustomizer;
import org.springframework.boot.autoconfigure.web.servlet.TomcatServletWebServerFactoryCustomizer; import org.springframework.boot.autoconfigure.web.servlet.TomcatServletWebServerFactoryCustomizer;
import org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.boot.web.server.WebServerFactoryCustomizer;
...@@ -48,6 +54,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,6 +54,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
import org.springframework.security.config.BeanIds; import org.springframework.security.config.BeanIds;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.util.StringUtils;
/** /**
* {@link ManagementContextConfiguration} for Servlet web endpoint infrastructure when a * {@link ManagementContextConfiguration} for Servlet web endpoint infrastructure when a
...@@ -71,16 +78,22 @@ class ServletManagementChildContextConfiguration { ...@@ -71,16 +78,22 @@ class ServletManagementChildContextConfiguration {
@Bean @Bean
@ConditionalOnClass(name = "io.undertow.Undertow") @ConditionalOnClass(name = "io.undertow.Undertow")
public UndertowAccessLogCustomizer undertowAccessLogCustomizer() { public UndertowAccessLogCustomizer undertowManagementAccessLogCustomizer() {
return new UndertowAccessLogCustomizer(); return new UndertowAccessLogCustomizer();
} }
@Bean @Bean
@ConditionalOnClass(name = "org.apache.catalina.valves.AccessLogValve") @ConditionalOnClass(name = "org.apache.catalina.valves.AccessLogValve")
public TomcatAccessLogCustomizer tomcatAccessLogCustomizer() { public TomcatAccessLogCustomizer tomcatManagementAccessLogCustomizer() {
return new TomcatAccessLogCustomizer(); return new TomcatAccessLogCustomizer();
} }
@Bean
@ConditionalOnClass(name = "org.eclipse.jetty.server.Server")
public JettyAccessLogCustomizer jettyManagementAccessLogCustomizer() {
return new JettyAccessLogCustomizer();
}
@Configuration @Configuration
@ConditionalOnClass({ EnableWebSecurity.class, Filter.class }) @ConditionalOnClass({ EnableWebSecurity.class, Filter.class })
@ConditionalOnBean(name = BeanIds.SPRING_SECURITY_FILTER_CHAIN, search = SearchStrategy.ANCESTORS) @ConditionalOnBean(name = BeanIds.SPRING_SECURITY_FILTER_CHAIN, search = SearchStrategy.ANCESTORS)
...@@ -119,8 +132,14 @@ class ServletManagementChildContextConfiguration { ...@@ -119,8 +132,14 @@ class ServletManagementChildContextConfiguration {
abstract static class AccessLogCustomizer implements Ordered { abstract static class AccessLogCustomizer implements Ordered {
private static final String MANAGEMENT_PREFIX = "management_";
protected String customizePrefix(String prefix) { protected String customizePrefix(String prefix) {
return "management_" + prefix; prefix = (prefix != null) ? prefix : "";
if (prefix.startsWith(MANAGEMENT_PREFIX)) {
return prefix;
}
return MANAGEMENT_PREFIX + prefix;
} }
@Override @Override
...@@ -163,4 +182,30 @@ class ServletManagementChildContextConfiguration { ...@@ -163,4 +182,30 @@ class ServletManagementChildContextConfiguration {
} }
static class JettyAccessLogCustomizer extends AccessLogCustomizer
implements WebServerFactoryCustomizer<JettyServletWebServerFactory> {
@Override
public void customize(JettyServletWebServerFactory factory) {
factory.addServerCustomizers(this::customizeServer);
}
private void customizeServer(Server server) {
RequestLog requestLog = server.getRequestLog();
if (requestLog != null && requestLog instanceof NCSARequestLog) {
customizeRequestLog((NCSARequestLog) requestLog);
}
}
private void customizeRequestLog(NCSARequestLog requestLog) {
String filename = requestLog.getFilename();
if (StringUtils.hasLength(filename)) {
File file = new File(filename);
file = new File(file.getParentFile(), customizePrefix(file.getName()));
requestLog.setFilename(file.getPath());
}
}
}
} }
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