Friday, June 16, 2023

SpringBoot에서 CORS 이슈 해결 방법

SpringBoot 애플리케이션에서 CORS(Cross-Origin Resource Sharing) 이슈 발생의 원인 및 해결 방법에 대해 설명하겠습니다.

1. CORS 란?

CORS(Cross-Origin Resource Sharing)는 웹 애플리케이션 간의 리소스 공유 기술입니다. 웹 브라우저는 보안상의 이슈로 인해 기본적으로 Same-Origin Policy를 따르며, 다른 도메인으로부터 리소스 요청을 제한합니다. CORS는 웹 페이지와 서버간의 리소스 공유를 허용하는 표준입니다.

2. 왜 CORS 이슈가 발생하는가?

웹 애플리케이션에서 Ajax 요청 등을 통해 다른 도메인의 리소스를 요청할 때 별도로 CORS 설정이 되어 있지 않으면, 브라우저는 Same-Origin Policy로 인해 해당 요청을 차단합니다. 이로 인해 데이터를 정상적으로 수신할 수 없게되며 CORS 이슈가 발생하게 됩니다.

3. SpringBoot에서 CORS 이슈 해결 방법

SpringBoot에서는 다음과 같이 두 가지 방법으로 CORS 설정을 할 수 있습니다.

a. 글로벌 설정:

WebMvcConfigurer 인터페이스를 구현하여 addCorsMappings() 메서드를 사용하면 전체 컨트롤러에 대한 CORS 설정을 할 수 있습니다.

@Configuration
public class WebConfig implements WebMvcConfigurer {
 @Override
 public void addCorsMappings(CorsRegistry registry) {
 registry.addMapping("/**") // 모든 요청에 대해 CORS 설정 적용
 .allowedOrigins("*") // 모든 도메인 허용
 .allowedMethods("*") // 모든 HTTP 메서드 허용
 .allowedHeaders("*") // 모든 HTTP 헤더 허용
 .allowCredentials(true); // 쿠키 정보 처리 허용
 }
}

b. 개별 컨트롤러 설정:

@ControllerAdvice 및 @CrossOrigin 어노테이션을 사용하여 개별 컨트롤러 클래스 또는 메서드에 대해 CORS 설정을 할 수 있습니다.

@RestController
@CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.POST})
public class MyController {
 // 컨트롤러 메서드 코드 작성
}

4. 결론

SpringBoot에서 다양한 CORS 설정 방법을 통해 간편하게 CORS 이슈를 해결할 수 있습니다. 상황에 따라 적절한 방법을 사용하여 CORS 설정을 하면 됩니다.


0 개의 댓글:

Post a Comment