회사에서 실서버 도메인이 https프로토콜을 사용하면서 Swagger에서 CORS 에러가 발생하는 문제가 생겼다.
이는 Swagger가 기본적으로 http프로토콜을 사용하기 때문이다.
해결방법은 swagger config에서 OpenAPI를 설정해주거나 @OpenAPIDefinition을 추가해주면 된다.
SwaggerConfig.java
파일에 OpenAPI에 url 설정하는 방법@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
Info info = new Info()
.version("버전")
.title("제목")
.description("설명");
...
Server server = new Server();
server.setUrl("https://도메인.com"); // https://에 접근 가능하게 설정
return new OpenAPI()
.info(info)
.servers(List.of(server));
}
}
Application.java
혹은 swaggerConfig.java
파일에 @OpenAPIDefinition
추가하는 방법@OpenAPIDefinition(servers = {@Server(url = "https://도메인.com", description = "도메인 설명")})
@SpringBootApplication
public class XXApplication {
...
public static void main(String[] args) {
SpringApplication.run(XXApplication.class, args);
}
}
둘 중 하나 편한 방법을 사용하면 된다.