Swagger Https 적용 시 문제
1. CORS에러
swagger 요청은 http이고 서버는 https이기 때문에 CORS에러가 발생한다.
추가해 두었던 OpenAPI 설정에 서버 설정을 추가해주면 해결이 된다.
로컬에서 테스트를 할 경우도 있으니 로컬 서버도 같이 추가를 해서 사용하면 편할 듯하다.
@Bean
public OpenAPI springShopOpenAPI() {
// swagger 토큰 사용 설정
List<SecurityRequirement> securityRequirementList = new ArrayList<>();
securityRequirementList.add(new SecurityRequirement().addList(JwtUtil.AUTHORIZATION_HEADER));
securityRequirementList.add(new SecurityRequirement().addList(JwtUtil.REFRESH_HEADER));
securityRequirementList.add(new SecurityRequirement().addList("Temporary_Authorization"));
// swagger 서버 설정
List<Server> serverList = new ArrayList<>();
Server local = new Server();
local.setUrl("http://localhost:8080");
local.setDescription("local");
Server deploy = new Server();
deploy.setUrl("https://사용할 도메인");
deploy.setDescription("deploy");
serverList.add(local);
serverList.add(deploy);
OpenAPI openAPI = new OpenAPI();
openAPI.info(new Info().title("FishingLoad API")
.version("v0.0.1")
.description("FishingLoad 프로젝트 API 명세서입니다."));
openAPI.security(securityRequirementList);
openAPI.setServers(serverList);
return openAPI;
}
코드를 추가해 주고 Swagger에 들어가면 서버가 생겨있다.
그런데 GET 메서드가 아닌 다른 요청을 했을 경우 403 에러가 발생!
찾아보니 Nginx 구성과 Spring-boot 구성에서 안 맞는 부분이 있어 신호를 리턴해주는 설정을 해주어야 한다고 한다. application.properties에 해당 코드만 설정해주면 해결이 된다.
server.forward-headers-strategy=framework
'생각정리 > 항해99' 카테고리의 다른 글
[실전 프로젝트] 1주차 - 1 (1) | 2023.10.05 |
---|---|
[주특기 프로젝트] 10일차 (0) | 2023.09.27 |
[주특기 프로젝트] 8일차 (0) | 2023.09.24 |
[주특기 프로젝트] 7일차 (0) | 2023.09.22 |
[주특기 프로젝트] 6일차 (0) | 2023.09.22 |