[JAVA] Https CORS 에러 해결 방법

한민욱·2024년 10월 14일

문제: CORS 에러 발생

Swagger UI를 배포한 후, 사이트에서 API를 호출하려고 할 때 CORS(Cross-Origin Resource Sharing) 에러가 발생했습니다. CORS는 브라우저가 서로 다른 도메인 간의 리소스 공유를 제한하는 보안 정책입니다. 예를 들어, https://your_domain에서 API를 호출하는데 그 API가 다른 도메인에 위치하고 있으면, 브라우저는 보안상 그 요청을 차단합니다.

해결 방법: Spring Boot에서 CORS 설정

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
####             .allowedOrigins("https://your_domain")  // CORS를 허용할 도메인 설정
            .allowedMethods("GET", "POST", "PUT", "DELETE")  // 허용할 HTTP 메서드 설정
            .allowedHeaders("*")  // 모든 헤더 허용
            .allowCredentials(true);  // 인증 정보(쿠키 등) 허용
}

주요 설정

  1. addMapping("/**"): 모든 경로에 대해 CORS 규칙을 적용합니다.
  2. allowedOrigins("https://your_domain"): https://your_domain에서 오는 요청을 허용합니다. 만약 여러 도메인에서 요청을 허용하고 싶다면, 다른 도메인도 추가할 수 있습니다.
  3. allowedMethods("GET", "POST", "PUT", "DELETE"): GET, POST, PUT, DELETE 메서드를 허용하여 필요한 요청을 처리할 수 있게 합니다.
  4. allowedHeaders("*"): 모든 헤더를 허용합니다. 특정 헤더만 허용하려면 해당 헤더를 명시할 수 있습니다.
  5. allowCredentials(true): 쿠키 및 인증 정보를 포함한 요청을 허용합니다.

결론

CORS는 브라우저 보안 정책의 일환으로, 도메인 간 리소스 요청을 제어합니다. 이 설정을 통해 배포한 Swagger 사이트에서 발생하는 CORS 문제를 해결하고, 특정 도메인에서만 API 요청을 허용할 수 있습니다. 필요한 도메인과 메서드를 선택적으로 설정함으로써 보안성을 유지하면서도 정상적인 요청을 처리할 수 있게 됩니다.

profile
나날이 성장하고 싶은 백엔드 개발자

0개의 댓글