47
47
import org .springframework .boot .autoconfigure .web .servlet .ServletWebServerFactoryCustomizer ;
48
48
import org .springframework .boot .autoconfigure .web .servlet .TomcatServletWebServerFactoryCustomizer ;
49
49
import org .springframework .boot .autoconfigure .web .servlet .UndertowServletWebServerFactoryCustomizer ;
50
+ import org .springframework .boot .context .properties .EnableConfigurationProperties ;
50
51
import org .springframework .boot .web .embedded .jetty .JettyServletWebServerFactory ;
51
52
import org .springframework .boot .web .embedded .tomcat .TomcatServletWebServerFactory ;
52
53
import org .springframework .boot .web .embedded .undertow .UndertowServletWebServerFactory ;
73
74
*/
74
75
@ ManagementContextConfiguration (value = ManagementContextType .CHILD , proxyBeanMethods = false )
75
76
@ ConditionalOnWebApplication (type = Type .SERVLET )
77
+ @ EnableConfigurationProperties (ManagementServerProperties .class )
76
78
class ServletManagementChildContextConfiguration {
77
79
78
80
@ Bean
@@ -83,20 +85,22 @@ ServletManagementWebServerFactoryCustomizer servletManagementWebServerFactoryCus
83
85
84
86
@ Bean
85
87
@ ConditionalOnClass (name = "io.undertow.Undertow" )
86
- UndertowAccessLogCustomizer undertowManagementAccessLogCustomizer () {
87
- return new UndertowAccessLogCustomizer ();
88
+ UndertowAccessLogCustomizer undertowManagementAccessLogCustomizer (
89
+ ManagementServerProperties managementServerProperties ) {
90
+ return new UndertowAccessLogCustomizer (managementServerProperties );
88
91
}
89
92
90
93
@ Bean
91
94
@ ConditionalOnClass (name = "org.apache.catalina.valves.AccessLogValve" )
92
- TomcatAccessLogCustomizer tomcatManagementAccessLogCustomizer () {
93
- return new TomcatAccessLogCustomizer ();
95
+ TomcatAccessLogCustomizer tomcatManagementAccessLogCustomizer (
96
+ ManagementServerProperties managementServerProperties ) {
97
+ return new TomcatAccessLogCustomizer (managementServerProperties );
94
98
}
95
99
96
100
@ Bean
97
101
@ ConditionalOnClass (name = "org.eclipse.jetty.server.Server" )
98
- JettyAccessLogCustomizer jettyManagementAccessLogCustomizer () {
99
- return new JettyAccessLogCustomizer ();
102
+ JettyAccessLogCustomizer jettyManagementAccessLogCustomizer (ManagementServerProperties managementServerProperties ) {
103
+ return new JettyAccessLogCustomizer (managementServerProperties );
100
104
}
101
105
102
106
@ Configuration (proxyBeanMethods = false )
@@ -145,14 +149,18 @@ private String getContextPath(ManagementServerProperties managementServerPropert
145
149
146
150
abstract static class AccessLogCustomizer implements Ordered {
147
151
148
- private static final String MANAGEMENT_PREFIX = "management_" ;
152
+ protected final ManagementServerProperties managementServerProperties ;
149
153
150
- protected String customizePrefix (String prefix ) {
154
+ AccessLogCustomizer (ManagementServerProperties managementServerProperties ) {
155
+ this .managementServerProperties = managementServerProperties ;
156
+ }
157
+
158
+ protected String customizePrefix (String prefix , String managementAccesslogPrefix ) {
151
159
prefix = (prefix != null ) ? prefix : "" ;
152
- if (prefix .startsWith (MANAGEMENT_PREFIX )) {
160
+ if (prefix .startsWith (managementAccesslogPrefix )) {
153
161
return prefix ;
154
162
}
155
- return MANAGEMENT_PREFIX + prefix ;
163
+ return managementAccesslogPrefix + prefix ;
156
164
}
157
165
158
166
@ Override
@@ -165,13 +173,19 @@ public int getOrder() {
165
173
static class TomcatAccessLogCustomizer extends AccessLogCustomizer
166
174
implements WebServerFactoryCustomizer <TomcatServletWebServerFactory > {
167
175
176
+ TomcatAccessLogCustomizer (ManagementServerProperties managementServerProperties ) {
177
+ super (managementServerProperties );
178
+ }
179
+
168
180
@ Override
169
181
public void customize (TomcatServletWebServerFactory factory ) {
170
182
AccessLogValve accessLogValve = findAccessLogValve (factory );
171
183
if (accessLogValve == null ) {
172
184
return ;
173
185
}
174
- accessLogValve .setPrefix (customizePrefix (accessLogValve .getPrefix ()));
186
+
187
+ accessLogValve .setPrefix (customizePrefix (accessLogValve .getPrefix (),
188
+ this .managementServerProperties .getAccesslog ().getPrefix ()));
175
189
}
176
190
177
191
private AccessLogValve findAccessLogValve (TomcatServletWebServerFactory factory ) {
@@ -188,16 +202,25 @@ private AccessLogValve findAccessLogValve(TomcatServletWebServerFactory factory)
188
202
static class UndertowAccessLogCustomizer extends AccessLogCustomizer
189
203
implements WebServerFactoryCustomizer <UndertowServletWebServerFactory > {
190
204
205
+ UndertowAccessLogCustomizer (ManagementServerProperties managementServerProperties ) {
206
+ super (managementServerProperties );
207
+ }
208
+
191
209
@ Override
192
210
public void customize (UndertowServletWebServerFactory factory ) {
193
- factory .setAccessLogPrefix (customizePrefix (factory .getAccessLogPrefix ()));
211
+ factory .setAccessLogPrefix (customizePrefix (factory .getAccessLogPrefix (),
212
+ this .managementServerProperties .getAccesslog ().getPrefix ()));
194
213
}
195
214
196
215
}
197
216
198
217
static class JettyAccessLogCustomizer extends AccessLogCustomizer
199
218
implements WebServerFactoryCustomizer <JettyServletWebServerFactory > {
200
219
220
+ JettyAccessLogCustomizer (ManagementServerProperties managementServerProperties ) {
221
+ super (managementServerProperties );
222
+ }
223
+
201
224
@ Override
202
225
public void customize (JettyServletWebServerFactory factory ) {
203
226
factory .addServerCustomizers (this ::customizeServer );
@@ -220,7 +243,8 @@ private void customizeRequestLogWriter(RequestLogWriter writer) {
220
243
String filename = writer .getFileName ();
221
244
if (StringUtils .hasLength (filename )) {
222
245
File file = new File (filename );
223
- file = new File (file .getParentFile (), customizePrefix (file .getName ()));
246
+ file = new File (file .getParentFile (),
247
+ customizePrefix (file .getName (), this .managementServerProperties .getAccesslog ().getPrefix ()));
224
248
writer .setFilename (file .getPath ());
225
249
}
226
250
}
0 commit comments