Skip to content

Commit d928e41

Browse files
author
bnasslahsen
committed
Add access to ApiResponses for OperationCustomizer. Fixes #625
1 parent 3f4695e commit d928e41

File tree

17 files changed

+189
-39
lines changed

17 files changed

+189
-39
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import org.springdoc.core.SpringDocConfigProperties;
5656
import org.springdoc.core.SpringDocConfigProperties.GroupConfig;
5757
import org.springdoc.core.customizers.OpenApiCustomiser;
58+
import org.springdoc.core.customizers.OperationCustomizer;
5859

5960
import org.springframework.core.annotation.AnnotatedElementUtils;
6061
import org.springframework.core.annotation.AnnotationUtils;
@@ -91,13 +92,16 @@ public abstract class AbstractOpenApiResource extends SpecFilter {
9192

9293
private final Optional<List<OpenApiCustomiser>> openApiCustomisers;
9394

95+
private final Optional<List<OperationCustomizer>> operationCustomizers;
96+
9497
private final AntPathMatcher antPathMatcher = new AntPathMatcher();
9598

9699
private final String groupName;
97100

98101
protected AbstractOpenApiResource(String groupName, OpenAPIBuilder openAPIBuilder,
99102
AbstractRequestBuilder requestBuilder,
100103
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
104+
Optional<List<OperationCustomizer>> operationCustomizers,
101105
Optional<List<OpenApiCustomiser>> openApiCustomisers,
102106
SpringDocConfigProperties springDocConfigProperties) {
103107
super();
@@ -108,6 +112,9 @@ protected AbstractOpenApiResource(String groupName, OpenAPIBuilder openAPIBuilde
108112
this.operationParser = operationParser;
109113
this.openApiCustomisers = openApiCustomisers;
110114
this.springDocConfigProperties = springDocConfigProperties;
115+
if (operationCustomizers.isPresent())
116+
operationCustomizers.get().removeIf(Objects::isNull);
117+
this.operationCustomizers = operationCustomizers;
111118
}
112119

113120
public static void addRestControllers(Class<?>... classes) {
@@ -227,6 +234,9 @@ protected void calculatePath(HandlerMethod handlerMethod, String operationPath,
227234
operationParser.buildCallbacks(apiCallbacks, openAPI, methodAttributes)
228235
.ifPresent(operation::setCallbacks);
229236

237+
// allow for customisation
238+
customiseOperation(operation, handlerMethod);
239+
230240
PathItem pathItemObject = buildPathItem(requestMethod, operation, operationPath, paths);
231241
paths.addPathItem(operationPath, pathItemObject);
232242
}
@@ -395,6 +405,12 @@ protected Set getDefaultAllowedHttpMethods() {
395405
return new HashSet<>(Arrays.asList(allowedRequestMethods));
396406
}
397407

408+
409+
protected Operation customiseOperation(Operation operation, HandlerMethod handlerMethod) {
410+
operationCustomizers.ifPresent(customizers -> customizers.forEach(customizer -> customizer.customize(operation, handlerMethod)));
411+
return operation;
412+
}
413+
398414
private boolean isDeprecatedType(Method method) {
399415
return DEPRECATED_TYPES.stream().anyMatch(clazz -> (AnnotatedElementUtils.findMergedAnnotation(method, clazz) != null));
400416
}

springdoc-openapi-common/src/main/java/org/springdoc/core/AbstractRequestBuilder.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
import io.swagger.v3.oas.models.parameters.Parameter;
5454
import io.swagger.v3.oas.models.parameters.RequestBody;
5555
import org.apache.commons.lang3.StringUtils;
56-
import org.springdoc.core.customizers.OperationCustomizer;
5756
import org.springdoc.core.customizers.ParameterCustomizer;
5857

5958
import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
@@ -121,20 +120,15 @@ public abstract class AbstractRequestBuilder {
121120

122121
private final LocalVariableTableParameterNameDiscoverer localSpringDocParameterNameDiscoverer;
123122

124-
private final Optional<List<OperationCustomizer>> operationCustomizers;
125-
126123
private final Optional<List<ParameterCustomizer>> parameterCustomizers;
127124

128125
protected AbstractRequestBuilder(GenericParameterBuilder parameterBuilder, RequestBodyBuilder requestBodyBuilder,
129-
OperationBuilder operationBuilder, Optional<List<OperationCustomizer>> operationCustomizers,
130-
Optional<List<ParameterCustomizer>> parameterCustomizers, LocalVariableTableParameterNameDiscoverer localSpringDocParameterNameDiscoverer) {
126+
OperationBuilder operationBuilder,Optional<List<ParameterCustomizer>> parameterCustomizers,
127+
LocalVariableTableParameterNameDiscoverer localSpringDocParameterNameDiscoverer) {
131128
super();
132129
this.parameterBuilder = parameterBuilder;
133130
this.requestBodyBuilder = requestBodyBuilder;
134131
this.operationBuilder = operationBuilder;
135-
if (operationCustomizers.isPresent())
136-
operationCustomizers.get().removeIf(Objects::isNull);
137-
this.operationCustomizers = operationCustomizers;
138132
if (parameterCustomizers.isPresent())
139133
parameterCustomizers.get().removeIf(Objects::isNull);
140134
this.parameterCustomizers = parameterCustomizers;
@@ -210,8 +204,7 @@ else if (!RequestMethod.GET.equals(requestMethod)) {
210204

211205
LinkedHashMap<String, Parameter> map = getParameterLinkedHashMap(components, methodAttributes, operationParameters, parametersDocMap);
212206
setParams(operation, new ArrayList<>(map.values()), requestBodyInfo);
213-
// allow for customisation
214-
return customiseOperation(operation, handlerMethod);
207+
return operation;
215208
}
216209

217210
private LinkedHashMap<String, Parameter> getParameterLinkedHashMap(Components components, MethodAttributes methodAttributes, List<Parameter> operationParameters, Map<String, io.swagger.v3.oas.annotations.Parameter> parametersDocMap) {
@@ -246,11 +239,6 @@ private LinkedHashMap<String, Parameter> getParameterLinkedHashMap(Components co
246239
return map;
247240
}
248241

249-
protected Operation customiseOperation(Operation operation, HandlerMethod handlerMethod) {
250-
operationCustomizers.ifPresent(customizers -> customizers.forEach(customizer -> customizer.customize(operation, handlerMethod)));
251-
return operation;
252-
}
253-
254242
protected Parameter customiseParameter(Parameter parameter, ParameterInfo parameterInfo) {
255243
parameterCustomizers.ifPresent(customizers -> customizers.forEach(customizer -> customizer.customize(parameter, parameterInfo.getMethodParameter())));
256244
return parameter;

springdoc-openapi-webflux-core/src/main/java/org/springdoc/webflux/api/MultipleOpenApiResource.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.util.List;
2222
import java.util.Map;
23+
import java.util.Objects;
2324
import java.util.Optional;
2425
import java.util.stream.Collectors;
2526

@@ -32,6 +33,7 @@
3233
import org.springdoc.core.OperationBuilder;
3334
import org.springdoc.core.SpringDocConfigProperties;
3435
import org.springdoc.core.SpringDocConfigProperties.GroupConfig;
36+
import org.springdoc.core.customizers.OperationCustomizer;
3537
import reactor.core.publisher.Mono;
3638

3739
import org.springframework.beans.factory.InitializingBean;
@@ -68,9 +70,12 @@ public class MultipleOpenApiResource implements InitializingBean {
6870

6971
private Map<String, OpenApiResource> groupedOpenApiResources;
7072

73+
private final Optional<List<OperationCustomizer>> operationCustomizers;
74+
7175
public MultipleOpenApiResource(List<GroupedOpenApi> groupedOpenApis,
7276
ObjectFactory<OpenAPIBuilder> defaultOpenAPIBuilder, AbstractRequestBuilder requestBuilder,
7377
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
78+
Optional<List<OperationCustomizer>> operationCustomizers,
7479
RequestMappingInfoHandlerMapping requestMappingHandlerMapping,
7580
SpringDocConfigProperties springDocConfigProperties) {
7681

@@ -81,6 +86,9 @@ public MultipleOpenApiResource(List<GroupedOpenApi> groupedOpenApis,
8186
this.operationParser = operationParser;
8287
this.requestMappingHandlerMapping = requestMappingHandlerMapping;
8388
this.springDocConfigProperties = springDocConfigProperties;
89+
if (operationCustomizers.isPresent())
90+
operationCustomizers.get().removeIf(Objects::isNull);
91+
this.operationCustomizers = operationCustomizers;
8492
}
8593

8694
@Override
@@ -96,6 +104,7 @@ public void afterPropertiesSet() throws Exception {
96104
responseBuilder,
97105
operationParser,
98106
requestMappingHandlerMapping,
107+
operationCustomizers,
99108
Optional.of(item.getOpenApiCustomisers()), springDocConfigProperties
100109
);
101110
}

springdoc-openapi-webflux-core/src/main/java/org/springdoc/webflux/api/OpenApiResource.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.springdoc.core.OperationBuilder;
3838
import org.springdoc.core.SpringDocConfigProperties;
3939
import org.springdoc.core.customizers.OpenApiCustomiser;
40+
import org.springdoc.core.customizers.OperationCustomizer;
4041
import reactor.core.publisher.Mono;
4142

4243
import org.springframework.beans.factory.annotation.Autowired;
@@ -66,17 +67,19 @@ public class OpenApiResource extends AbstractOpenApiResource {
6667
public OpenApiResource(String groupName, OpenAPIBuilder openAPIBuilder, AbstractRequestBuilder requestBuilder,
6768
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
6869
RequestMappingInfoHandlerMapping requestMappingHandlerMapping,
70+
Optional<List<OperationCustomizer>> operationCustomizers,
6971
Optional<List<OpenApiCustomiser>> openApiCustomisers, SpringDocConfigProperties springDocConfigProperties) {
70-
super(groupName, openAPIBuilder, requestBuilder, responseBuilder, operationParser, openApiCustomisers, springDocConfigProperties);
72+
super(groupName, openAPIBuilder, requestBuilder, responseBuilder, operationParser, operationCustomizers, openApiCustomisers, springDocConfigProperties);
7173
this.requestMappingHandlerMapping = requestMappingHandlerMapping;
7274
}
7375

7476
@Autowired
7577
public OpenApiResource(OpenAPIBuilder openAPIBuilder, AbstractRequestBuilder requestBuilder,
7678
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
7779
RequestMappingInfoHandlerMapping requestMappingHandlerMapping,
80+
Optional<List<OperationCustomizer>> operationCustomizers,
7881
Optional<List<OpenApiCustomiser>> openApiCustomisers, SpringDocConfigProperties springDocConfigProperties) {
79-
super(DEFAULT_GROUP_NAME, openAPIBuilder, requestBuilder, responseBuilder, operationParser, openApiCustomisers, springDocConfigProperties);
82+
super(DEFAULT_GROUP_NAME, openAPIBuilder, requestBuilder, responseBuilder, operationParser,operationCustomizers, openApiCustomisers, springDocConfigProperties);
8083
this.requestMappingHandlerMapping = requestMappingHandlerMapping;
8184
}
8285

springdoc-openapi-webflux-core/src/main/java/org/springdoc/webflux/core/MultipleOpenApiWebFluxConfiguration.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package org.springdoc.webflux.core;
2020

2121
import java.util.List;
22+
import java.util.Optional;
2223

2324
import org.springdoc.core.AbstractRequestBuilder;
2425
import org.springdoc.core.GenericResponseBuilder;
@@ -27,6 +28,7 @@
2728
import org.springdoc.core.OpenAPIBuilder;
2829
import org.springdoc.core.OperationBuilder;
2930
import org.springdoc.core.SpringDocConfigProperties;
31+
import org.springdoc.core.customizers.OperationCustomizer;
3032
import org.springdoc.webflux.api.MultipleOpenApiResource;
3133

3234
import org.springframework.beans.factory.ObjectFactory;
@@ -53,11 +55,12 @@ class MultipleOpenApiWebFluxConfiguration {
5355
@Lazy(false)
5456
MultipleOpenApiResource multipleOpenApiResource(List<GroupedOpenApi> groupedOpenApis,
5557
ObjectFactory<OpenAPIBuilder> defaultOpenAPIBuilder, AbstractRequestBuilder requestBuilder,
58+
Optional<List<OperationCustomizer>> operationCustomizers,
5659
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
5760
RequestMappingInfoHandlerMapping requestMappingHandlerMapping, SpringDocConfigProperties springDocConfigProperties) {
5861
return new MultipleOpenApiResource(groupedOpenApis,
5962
defaultOpenAPIBuilder, requestBuilder,
60-
responseBuilder, operationParser,
63+
responseBuilder, operationParser, operationCustomizers,
6164
requestMappingHandlerMapping, springDocConfigProperties);
6265
}
6366
}

springdoc-openapi-webflux-core/src/main/java/org/springdoc/webflux/core/RequestBuilder.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.springdoc.core.GenericParameterBuilder;
2626
import org.springdoc.core.OperationBuilder;
2727
import org.springdoc.core.RequestBodyBuilder;
28-
import org.springdoc.core.customizers.OperationCustomizer;
2928
import org.springdoc.core.customizers.ParameterCustomizer;
3029

3130
import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
@@ -45,8 +44,8 @@ public class RequestBuilder extends AbstractRequestBuilder {
4544
}
4645

4746
public RequestBuilder(GenericParameterBuilder parameterBuilder, RequestBodyBuilder requestBodyBuilder,
48-
OperationBuilder operationBuilder, Optional<List<OperationCustomizer>> operationCustomizers,
49-
Optional<List<ParameterCustomizer>> parameterCustomizers, LocalVariableTableParameterNameDiscoverer localSpringDocParameterNameDiscoverer) {
50-
super(parameterBuilder, requestBodyBuilder, operationBuilder, operationCustomizers, parameterCustomizers, localSpringDocParameterNameDiscoverer);
47+
OperationBuilder operationBuilder, Optional<List<ParameterCustomizer>> parameterCustomizers,
48+
LocalVariableTableParameterNameDiscoverer localSpringDocParameterNameDiscoverer) {
49+
super(parameterBuilder, requestBodyBuilder, operationBuilder, parameterCustomizers, localSpringDocParameterNameDiscoverer);
5150
}
5251
}

springdoc-openapi-webflux-core/src/main/java/org/springdoc/webflux/core/SpringDocWebFluxConfiguration.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,22 @@ public class SpringDocWebFluxConfiguration {
5858
OpenApiResource openApiResource(OpenAPIBuilder openAPIBuilder, AbstractRequestBuilder requestBuilder,
5959
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
6060
RequestMappingInfoHandlerMapping requestMappingHandlerMapping,
61+
Optional<List<OperationCustomizer>> operationCustomizers,
6162
Optional<List<OpenApiCustomiser>> openApiCustomisers, SpringDocConfigProperties springDocConfigProperties) {
6263
return new OpenApiResource(openAPIBuilder, requestBuilder,
6364
responseBuilder, operationParser,
64-
requestMappingHandlerMapping,
65+
requestMappingHandlerMapping,operationCustomizers,
6566
openApiCustomisers, springDocConfigProperties);
6667
}
6768

6869
@Bean
6970
@ConditionalOnMissingBean
7071
RequestBuilder requestBuilder(GenericParameterBuilder parameterBuilder, RequestBodyBuilder requestBodyBuilder,
71-
OperationBuilder operationBuilder, Optional<List<OperationCustomizer>> operationCustomizers,
72+
OperationBuilder operationBuilder,
7273
Optional<List<ParameterCustomizer>> parameterCustomizers,
7374
LocalVariableTableParameterNameDiscoverer localSpringDocParameterNameDiscoverer) {
7475
return new RequestBuilder(parameterBuilder, requestBodyBuilder,
75-
operationBuilder, operationCustomizers, parameterCustomizers, localSpringDocParameterNameDiscoverer);
76+
operationBuilder, parameterCustomizers, localSpringDocParameterNameDiscoverer);
7677
}
7778

7879
@Bean

springdoc-openapi-webmvc-core/src/main/java/org/springdoc/webmvc/api/MultipleOpenApiResource.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.util.List;
2222
import java.util.Map;
23+
import java.util.Objects;
2324
import java.util.Optional;
2425
import java.util.stream.Collectors;
2526

@@ -35,6 +36,7 @@
3536
import org.springdoc.core.SecurityOAuth2Provider;
3637
import org.springdoc.core.SpringDocConfigProperties;
3738
import org.springdoc.core.SpringDocConfigProperties.GroupConfig;
39+
import org.springdoc.core.customizers.OperationCustomizer;
3840

3941
import org.springframework.beans.factory.InitializingBean;
4042
import org.springframework.beans.factory.ObjectFactory;
@@ -73,9 +75,11 @@ public class MultipleOpenApiResource implements InitializingBean {
7375

7476
private Map<String, OpenApiResource> groupedOpenApiResources;
7577

78+
private final Optional<List<OperationCustomizer>> operationCustomizers;
79+
7680
public MultipleOpenApiResource(List<GroupedOpenApi> groupedOpenApis,
7781
ObjectFactory<OpenAPIBuilder> defaultOpenAPIBuilder, AbstractRequestBuilder requestBuilder,
78-
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
82+
GenericResponseBuilder responseBuilder, OperationBuilder operationParser, Optional<List<OperationCustomizer>> operationCustomizers,
7983
RequestMappingInfoHandlerMapping requestMappingHandlerMapping, Optional<ActuatorProvider> servletContextProvider,
8084
SpringDocConfigProperties springDocConfigProperties, Optional<SecurityOAuth2Provider> springSecurityOAuth2Provider) {
8185

@@ -88,6 +92,9 @@ public MultipleOpenApiResource(List<GroupedOpenApi> groupedOpenApis,
8892
this.servletContextProvider = servletContextProvider;
8993
this.springDocConfigProperties = springDocConfigProperties;
9094
this.springSecurityOAuth2Provider = springSecurityOAuth2Provider;
95+
if (operationCustomizers.isPresent())
96+
operationCustomizers.get().removeIf(Objects::isNull);
97+
this.operationCustomizers = operationCustomizers;
9198
}
9299

93100
@Override
@@ -104,6 +111,7 @@ public void afterPropertiesSet() throws Exception {
104111
operationParser,
105112
requestMappingHandlerMapping,
106113
servletContextProvider,
114+
operationCustomizers,
107115
Optional.of(item.getOpenApiCustomisers()),
108116
springDocConfigProperties,
109117
springSecurityOAuth2Provider

springdoc-openapi-webmvc-core/src/main/java/org/springdoc/webmvc/api/OpenApiResource.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.springdoc.core.SecurityOAuth2Provider;
4242
import org.springdoc.core.SpringDocConfigProperties;
4343
import org.springdoc.core.customizers.OpenApiCustomiser;
44+
import org.springdoc.core.customizers.OperationCustomizer;
4445

4546
import org.springframework.beans.factory.annotation.Autowired;
4647
import org.springframework.beans.factory.annotation.Value;
@@ -75,10 +76,11 @@ public OpenApiResource(String groupName, OpenAPIBuilder openAPIBuilder, Abstract
7576
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
7677
RequestMappingInfoHandlerMapping requestMappingHandlerMapping,
7778
Optional<ActuatorProvider> servletContextProvider,
79+
Optional<List<OperationCustomizer>> operationCustomizers,
7880
Optional<List<OpenApiCustomiser>> openApiCustomisers,
7981
SpringDocConfigProperties springDocConfigProperties,
8082
Optional<SecurityOAuth2Provider> springSecurityOAuth2Provider) {
81-
super(groupName, openAPIBuilder, requestBuilder, responseBuilder, operationParser, openApiCustomisers, springDocConfigProperties);
83+
super(groupName, openAPIBuilder, requestBuilder, responseBuilder, operationParser, operationCustomizers, openApiCustomisers, springDocConfigProperties);
8284
this.requestMappingHandlerMapping = requestMappingHandlerMapping;
8385
this.servletContextProvider = servletContextProvider;
8486
this.springSecurityOAuth2Provider = springSecurityOAuth2Provider;
@@ -89,10 +91,11 @@ public OpenApiResource( OpenAPIBuilder openAPIBuilder, AbstractRequestBuilder re
8991
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
9092
RequestMappingInfoHandlerMapping requestMappingHandlerMapping,
9193
Optional<ActuatorProvider> servletContextProvider,
94+
Optional<List<OperationCustomizer>> operationCustomizers,
9295
Optional<List<OpenApiCustomiser>> openApiCustomisers,
9396
SpringDocConfigProperties springDocConfigProperties,
9497
Optional<SecurityOAuth2Provider> springSecurityOAuth2Provider) {
95-
super(DEFAULT_GROUP_NAME, openAPIBuilder, requestBuilder, responseBuilder, operationParser, openApiCustomisers, springDocConfigProperties);
98+
super(DEFAULT_GROUP_NAME, openAPIBuilder, requestBuilder, responseBuilder, operationParser,operationCustomizers, openApiCustomisers, springDocConfigProperties);
9699
this.requestMappingHandlerMapping = requestMappingHandlerMapping;
97100
this.servletContextProvider = servletContextProvider;
98101
this.springSecurityOAuth2Provider = springSecurityOAuth2Provider;

springdoc-openapi-webmvc-core/src/main/java/org/springdoc/webmvc/core/MultipleOpenApiSupportConfiguration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.springdoc.core.OperationBuilder;
3030
import org.springdoc.core.SecurityOAuth2Provider;
3131
import org.springdoc.core.SpringDocConfigProperties;
32+
import org.springdoc.core.customizers.OperationCustomizer;
3233
import org.springdoc.webmvc.api.ActuatorProvider;
3334
import org.springdoc.webmvc.api.MultipleOpenApiResource;
3435

@@ -57,13 +58,14 @@ class MultipleOpenApiSupportConfiguration {
5758
MultipleOpenApiResource multipleOpenApiResource(List<GroupedOpenApi> groupedOpenApis,
5859
ObjectFactory<OpenAPIBuilder> defaultOpenAPIBuilder, AbstractRequestBuilder requestBuilder,
5960
GenericResponseBuilder responseBuilder, OperationBuilder operationParser,
61+
Optional<List<OperationCustomizer>> operationCustomizers,
6062
RequestMappingInfoHandlerMapping requestMappingHandlerMapping,
6163
Optional<ActuatorProvider> servletContextProvider,
6264
SpringDocConfigProperties springDocConfigProperties,
6365
Optional<SecurityOAuth2Provider> springSecurityOAuth2Provider) {
6466
return new MultipleOpenApiResource(groupedOpenApis,
6567
defaultOpenAPIBuilder, requestBuilder,
66-
responseBuilder, operationParser,
68+
responseBuilder, operationParser,operationCustomizers,
6769
requestMappingHandlerMapping, servletContextProvider,
6870
springDocConfigProperties,
6971
springSecurityOAuth2Provider);

0 commit comments

Comments
 (0)