Backend/Spring

https로 배포 시 swagger에서 cors에러 발생 해결

fladi 2023. 5. 12. 22:25
728x90

Failed to fetch, CORS, spring, https, http

 

 

 

문제상황

  • http로 잘 동작하던 api를 https로 배포하였더니 swagger에서 cors에러가 발생
  • https로 api요청을 보내면 잘 되는 것을 확인하였음

 

@RestController
@RequiredArgsConstructor
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class FacilityController {
}
  • @CrossOrigin 어노테이션도 잘 설정해둔 상태인데.. 왜?

 

문제원인

  • swagger는 기본적으로 http로 요청을 보내도록 설정되어있음
  • https로 배포했기 때문에 차이가 생겨 CORS에러가 발생

 

문제해결

  • @OpenAPIDefinition 어노테이션을 사용함
@OpenAPIDefinition(servers = {@Server(url = "/", description = "Default Server Url")}) //https사용 시 swagger사용하기 위한 cors해결법
@SpringBootApplication
public class AllimiApplication {
	public static void main(String[] args) {
		SpringApplication.run(AllimiApplication.class, args);
	}
}
  • url에 원하는 https도메인을 넣으면 된다. 모두 허용하려면 /로 설정
  • 기본텍스트 경로가 /v3라면 url에 /v3으로 설정해주면 됨

 

 

 

 

 

참고자료

https://kbwplace.tistory.com/173

https://stackoverflow.com/questions/70843940/springdoc-openapi-ui-how-do-i-set-the-request-to-https

https://github.com/springdoc/springdoc-openapi/issues/726

 

 

728x90