SpringDoc Swagger 사용 중 Authorize 해도 Available authorizations에 아무것도 나오지 않는 오류

Socra·2025년 2월 12일
0

문제 상황

swagger-ui에 인증을 적용해 요청을 테스트하려 했다.
Authorize 버튼을 눌러 인증 정보를 입력했지만 API의 자물쇠 아이콘을 누르니 실제로 인증이 적용되지 않는 문제가 발생했다.

문제 원인

SpringDoc 설정의 @SecurityScheme의 name 속성과 컨트롤러의 @SecurityRequirement의 name 속성이 일치하지 않아 발생했다.

Controller

@SecurityRequirement(name = "bearerAuth")
@Tag(name = "ApiV1MemberController", description = "회원 관련 API")
@RestController
@RequestMapping("/api/v1/members")
@RequiredArgsConstructor
public class ApiV1MemberController {

	...
    
}

SpringDocConfig

@Configuration
@OpenAPIDefinition(info = @Info(title = "API 서버", version = "v1"))
@SecurityScheme(
	name = "Authorization",
	type = SecuritySchemeType.HTTP,
	scheme = "bearer",
	bearerFormat = "JWT"
)
public class SpringDocConfig {

    ...
    
}

컨트롤러에선 "bearerAuth"라는 이름을 사용했지만 SpringDoc설정에선 "Authorization"을 이름으로 사용하고 있었다.

문제 해결

SpringDocConfig의 @SecurityScheme name 속성을 "bearerAuth"로 일치시켜주니 해결되었다.

name 속성으로 임의의 이름을 사용해도 되지만 일치하게 적용했는지는 확인하자 😅


Swagger 인증 관련 문서
https://swagger.io/docs/specification/v3_0/authentication/basic-authentication/

0개의 댓글

관련 채용 정보