본문 바로가기

생각정리/항해99

[주특기 프로젝트] 9일차

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