반응형
웹 개발의 세계에서 CORS(Cross-Origin Resource Sharing)는 필수적인 개념이다.
다양한 출처에서 오는 요청을 처리해야 하는 현대 웹 애플리케이션에서 CORS 설정은 보안과 자원 공유의 균형을 맞추는 데 중요한 역할을 한다.
이 글에서는 Spring Framework에서 CORS를 설정하는 세 가지 방법을 소개한다.
1. @CrossOrigin 어노테이션 사용
가장 간단하고 직관적인 방법은 @CrossOrigin 어노테이션을 사용하는 것이다.
이 어노테이션을 컨트롤러 클래스나 메소드에 적용할 수 있다.
예를 들어, 특정 출처에서 오는 요청만을 허용하고 싶다면 다음과 같이 설정한다.
@RestController
@RequestMapping("/api")
public class MyController {
@CrossOrigin(origins = "http://example.com")
@GetMapping("/items")
public List<Item> getItems() {
// ...
}
}
이 코드는 http://example.com에서 오는 GET /api/items 요청만을 허용한다.
2. 글로벌 CORS 설정
전체 애플리케이션에 대한 CORS 정책을 설정하고자 한다면 WebMvcConfigurer 인터페이스를 구현하는 것이 좋다. addCorsMappings 메소드를 오버라이드하여 다음과 같이 설정할 수 있다.
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*")
.allowCredentials(true);
}
}
이 설정은 /api/** 경로로 들어오는 모든 요청에 대해 지정된 출처, 메소드, 헤더를 허용한다.
3. CorsFilter 사용
보다 세부적인 설정을 원한다면 CorsFilter를 사용하는 방법이 있다.
특히 Spring Security와 함께 사용할 때 유용하다.
CorsFilter를 빈으로 등록하여 다음과 같이 설정할 수 있다.
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("http://example.com");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/api/**", config);
return new CorsFilter(source);
}
이 설정은 모든 HTTP 메소드와 헤더를 http://example.com 출처로부터 /api/** 경로에 대해 허용한다.
반응형
'IT > Java' 카테고리의 다른 글
스프링 부트: 윈도우와 맥에서 한글 파일명 다운로드 문제 해결하기(2) (0) | 2024.01.25 |
---|---|
Effective Java: 생성자에 많은 매개변수가 필요할 때: 빌더 패턴 고려하기 (0) | 2024.01.24 |
Effective java: 생성자 대신 정적 팩터리 메서드 요약 (0) | 2024.01.23 |
Integer와 Long의 차이점 (0) | 2024.01.20 |
스프링 부트: 윈도우와 맥에서 한글 파일명 다운로드 문제 해결하기 (1) | 2024.01.20 |