62
62
import org .slf4j .Logger ;
63
63
import org .slf4j .LoggerFactory ;
64
64
import org .springdoc .core .customizers .OpenApiBuilderCustomizer ;
65
-
65
+ import org . springdoc . core . customizers . ServerBaseUrlCustomizer ;
66
66
import org .springframework .beans .BeansException ;
67
67
import org .springframework .beans .factory .config .BeanDefinition ;
68
68
import org .springframework .boot .autoconfigure .AutoConfigurationPackages ;
@@ -120,6 +120,11 @@ public class OpenAPIService implements ApplicationContextAware {
120
120
*/
121
121
private final Optional <List <OpenApiBuilderCustomizer >> openApiBuilderCustomisers ;
122
122
123
+ /**
124
+ * The server base URL customisers.
125
+ */
126
+ private final Optional <List <ServerBaseUrlCustomizer >> serverBaseUrlCustomisers ;
127
+
123
128
/**
124
129
* The Spring doc config properties.
125
130
*/
@@ -188,7 +193,8 @@ public class OpenAPIService implements ApplicationContextAware {
188
193
*/
189
194
OpenAPIService (Optional <OpenAPI > openAPI , SecurityService securityParser ,
190
195
SpringDocConfigProperties springDocConfigProperties , PropertyResolverUtils propertyResolverUtils ,
191
- Optional <List <OpenApiBuilderCustomizer >> openApiBuilderCustomisers ) {
196
+ Optional <List <OpenApiBuilderCustomizer >> openApiBuilderCustomisers ,
197
+ Optional <List <ServerBaseUrlCustomizer >> serverBaseUrlCustomisers ) {
192
198
if (openAPI .isPresent ()) {
193
199
this .openAPI = openAPI .get ();
194
200
if (this .openAPI .getComponents () == null )
@@ -202,6 +208,7 @@ public class OpenAPIService implements ApplicationContextAware {
202
208
this .securityParser = securityParser ;
203
209
this .springDocConfigProperties = springDocConfigProperties ;
204
210
this .openApiBuilderCustomisers = openApiBuilderCustomisers ;
211
+ this .serverBaseUrlCustomisers = serverBaseUrlCustomisers ;
205
212
if (springDocConfigProperties .isUseFqn ())
206
213
TypeNameResolver .std .setUseFqn (true );
207
214
}
@@ -466,7 +473,15 @@ public Schema resolveProperties(Schema schema, Locale locale) {
466
473
* @param serverBaseUrl the server base url
467
474
*/
468
475
public void setServerBaseUrl (String serverBaseUrl ) {
469
- this .serverBaseUrl = serverBaseUrl ;
476
+ String customServerBaseUrl = serverBaseUrl ;
477
+
478
+ if (serverBaseUrlCustomisers .isPresent ()) {
479
+ for (ServerBaseUrlCustomizer customiser : serverBaseUrlCustomisers .get ()) {
480
+ customServerBaseUrl = customiser .customise (customServerBaseUrl );
481
+ }
482
+ }
483
+
484
+ this .serverBaseUrl = customServerBaseUrl ;
470
485
}
471
486
472
487
/**
@@ -808,8 +823,17 @@ public SecurityService getSecurityParser() {
808
823
return securityParser ;
809
824
}
810
825
826
+ /**
827
+ * Gets server base URL
828
+ *
829
+ * @return the server base URL
830
+ */
831
+ public String getServerBaseUrl () {
832
+ return serverBaseUrl ;
833
+ }
834
+
811
835
@ Override
812
836
public void setApplicationContext (ApplicationContext applicationContext ) throws BeansException {
813
837
this .context = applicationContext ;
814
838
}
815
- }
839
+ }
0 commit comments