Skip to content

Commit 6a3b6cf

Browse files
author
bnasslahsen
committed
code second review
1 parent 8f4d8db commit 6a3b6cf

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

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

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ public static Optional<Content> getContent(io.swagger.v3.oas.annotations.media.C
199199
*/
200200
public static void mergeSchema(Content existingContent, Schema<?> schemaN, String mediaTypeStr) {
201201
if (existingContent.containsKey(mediaTypeStr)) {
202-
io.swagger.v3.oas.models.media.MediaType mediaType = existingContent.get(mediaTypeStr);
202+
MediaType mediaType = existingContent.get(mediaTypeStr);
203203
if (!schemaN.equals(mediaType.getSchema())) {
204204
// Merge the two schemas for the same mediaType
205205
Schema firstSchema = mediaType.getSchema();
@@ -221,7 +221,7 @@ public static void mergeSchema(Content existingContent, Schema<?> schemaN, Strin
221221
}
222222
else
223223
// Add the new schema for a different mediaType
224-
existingContent.addMediaType(mediaTypeStr, new io.swagger.v3.oas.models.media.MediaType().schema(schemaN));
224+
existingContent.addMediaType(mediaTypeStr, new MediaType().schema(schemaN));
225225
}
226226

227227
/**
@@ -232,10 +232,15 @@ public static void mergeSchema(Content existingContent, Schema<?> schemaN, Strin
232232
*/
233233
@SuppressWarnings("unchecked")
234234
public static boolean isAnnotationToIgnore(MethodParameter parameter) {
235-
return parameter.getParameterIndex() != -1
236-
&& ANNOTATIONS_TO_IGNORE.stream().anyMatch(
237-
annotation -> AnnotationUtils.findAnnotation(parameter.getParameter(), annotation) != null
235+
boolean annotationFirstCheck = ANNOTATIONS_TO_IGNORE.stream().anyMatch(annotation ->
236+
(parameter.getParameterIndex() != -1 && AnnotationUtils.findAnnotation(parameter.getParameter(), annotation) != null)
238237
|| AnnotationUtils.findAnnotation(parameter.getParameterType(), annotation) != null);
238+
239+
boolean annotationSecondCheck = Arrays.stream(parameter.getParameterAnnotations()).anyMatch(annotation ->
240+
ANNOTATIONS_TO_IGNORE.contains(annotation.annotationType())
241+
|| ANNOTATIONS_TO_IGNORE.stream().anyMatch(annotationToIgnore -> annotation.annotationType().getDeclaredAnnotation(annotationToIgnore) != null));
242+
243+
return annotationFirstCheck || annotationSecondCheck;
239244
}
240245

241246
/**

springdoc-openapi-security/src/test/java/test/org/springdoc/api/app7/CurrentUser.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package test.org.springdoc.api.app7;
22

3-
import org.springframework.security.core.annotation.AuthenticationPrincipal;
4-
53
import java.lang.annotation.Documented;
64
import java.lang.annotation.ElementType;
75
import java.lang.annotation.Retention;
86
import java.lang.annotation.RetentionPolicy;
97
import java.lang.annotation.Target;
108

11-
@Target({ElementType.PARAMETER, ElementType.TYPE})
9+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
10+
11+
@Target({ElementType.PARAMETER, ElementType.TYPE, ElementType.FIELD})
1212
@Retention(RetentionPolicy.RUNTIME)
1313
@Documented
1414
@AuthenticationPrincipal

springdoc-openapi-security/src/test/java/test/org/springdoc/api/app7/HelloController.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
package test.org.springdoc.api.app7;
2020

21+
import org.springdoc.api.annotations.ParameterObject;
22+
2123
import org.springframework.security.core.annotation.AuthenticationPrincipal;
2224
import org.springframework.web.bind.annotation.PostMapping;
2325
import org.springframework.web.bind.annotation.RestController;
@@ -27,8 +29,10 @@ public class HelloController {
2729

2830
@PostMapping(value = "/hello")
2931
public String hello(
30-
@AuthenticationPrincipal Person person1,
31-
@CurrentUser Person person2) {
32+
@AuthenticationPrincipal Person person1,
33+
@CurrentUser Person person2,
34+
@ParameterObject AnotherPerson person3,
35+
@ParameterObject TheOtherPerson person4) {
3236
return "OK";
3337
}
3438

0 commit comments

Comments
 (0)