티스토리 뷰
SpringBoot가 3.x대로 올라오면서 애로사항이 제법 있습니다. 기존에 쓰던 코드에 한계점이 있어서 확장 하거나 기능을 추가하면서 구조가 변경 됩니다. 그러면 기존에 있던 문서들은 소용이 없어집니다.
SpringBoot 3.x가 그렇습니다. Swagger도 oAuth2에서 oAuth3로 바뀌면서 적용하는 방법들이 많이 바뀌었습니다. 하지만 문서가 잘 검색이 안됩니다. 수가 많지 않아서일 것입니다.
다음 내용은 SpringBoot3.x Swagger3.x에서 JWT인증 하면서 겪은 애로사항이 있어서 몇자 기록을 남겨봅니다.
Swagger 3.x설정 하는 코드입니다. 여기에서 중요한 것은 @SecurityScheme입니다.
@OpenAPIDefinition(
info = @Info(title = "Book App",
description = "Book App Api명세",
version = "v1"))
@SecurityScheme(
name = "Bearer Authentication",
type = SecuritySchemeType.HTTP,
bearerFormat = "JWT",
scheme = "bearer"
)
@RequiredArgsConstructor
@Configuration
public class SwaggerConfig {
@Bean
public GroupedOpenApi chatOpenApi() {
String[] paths = {"/api/v1/**"};
return GroupedOpenApi.builder()
.group("Book API v1")
.pathsToMatch(paths)
.build();
}
}
위 @SecurityScheme 만 붙이면 Authorize버튼이 활성화 됩니다.
설정이 잘 되었다면 request header에 authorization: Bearer <jwt> 형태로 토큰이 들어옵니다.
이렇게만 하면 Authorize버튼이 생겨서 되는 것 같지만 Request Header를 확인 해보면 위와 같이 이쁘게 Authorization: Bearer <token>이 안들어 옵니다.
SecurityRequirement
@SecurityRequirement 어노테이션을 Controller에 붙여야 swagger에서 토큰을 넣었을 때 Header를 통해 token이 들어옵니다. 한 ... 6시간 정도 삽질했네요 ㅜ
@RestController
@SecurityRequirement(name = "Bearer Authentication")
@RequiredArgsConstructor
@RequestMapping("/api/v1/users")
@Tag(name = "ABC User Controller", description = "사용자(User) 관리")
public class UserController {
// ...
}
참고
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 이직
- Sh
- 싱가폴
- 개발자
- 2017 티스토리 결산
- docker container
- 도커각티슈박스
- vim
- docker container whale
- Linux
- 도커티슈박스
- docker container tissue
- 도커티슈케이스
- 도커각티슈케이스
- shellscript
- docker container case
- docker container tissue box
- 도커컨테이너
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함