diff --git a/oversweet-common/src/main/java/com/depromeet/oversweet/annotation/SecurityExclusion.java b/oversweet-common/src/main/java/com/depromeet/oversweet/annotation/SecurityExclusion.java index 3e67165..2f76501 100644 --- a/oversweet-common/src/main/java/com/depromeet/oversweet/annotation/SecurityExclusion.java +++ b/oversweet-common/src/main/java/com/depromeet/oversweet/annotation/SecurityExclusion.java @@ -5,6 +5,10 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +/** + * Swagger Security 적용에서 제외시키는 어노테이션 + * - 토큰 검증이 불필요한 엔드포인트에 @SecurityExclusion 적용하여 사용 가능 + */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface SecurityExclusion { diff --git a/oversweet-common/src/main/java/com/depromeet/oversweet/swagger/OpenApiConfig.java b/oversweet-common/src/main/java/com/depromeet/oversweet/swagger/OpenApiConfig.java index 1681c0d..5f7f79d 100644 --- a/oversweet-common/src/main/java/com/depromeet/oversweet/swagger/OpenApiConfig.java +++ b/oversweet-common/src/main/java/com/depromeet/oversweet/swagger/OpenApiConfig.java @@ -40,6 +40,12 @@ public OpenAPI springOpenAPI() { .info(info); } + /** + * Swagger Security 적용 + * - Bearer Authentication 설정 + * - 토큰 검증이 필요한 엔드포인트에 @SecurityRequirement(name = "accessToken") 적용하여 사용 가능 + * - key 값인 accessToken 은 자유롭게 설정 가능 + */ private Components securitySetting() { return new Components() .addSecuritySchemes("accessToken", @@ -51,6 +57,10 @@ private Components securitySetting() { .name("Authorization")); } + /** + * Swagger Operation 커스텀 + * - @SecurityExclusion 이 붙은 곳은 security 적용 제외 + */ @Bean public OperationCustomizer operationCustomizer() { return (Operation operation, HandlerMethod handlerMethod) -> {