자바 스프링 부트에서 CORS 를 세팅해보습니다.
전체코드는 아래와 같습니다.
package com.example.haruplay.global.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 요청 URL에 대해 CORS 설정이 적용
.allowedOrigins("http://localhost:3000") // CORS 요청을 허용할 출처(origin)를 지정
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*");
}
}
CorsRegistry를 사용하여 CORS 정책을 설정합니다.@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:3000")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*")
.allowCredentials(true);
}
아래부터 코드 상세 설명
registry.addMapping("/**")/** : 모든 경로/api/** : /api/로 시작하는 모든 요청에 대해 CORS 설정 적용.allowedOrigins("http://localhost:3000")allowedOrigins("http://localhost:3000"): CORS 요청을 허용할 출처(origin)를 지정.allowedOrigins("http://localhost:3000", "http://example.com")allowedMethods("GET", "POST", "PUT", "DELETE")allowedMethods("GET", "POST", "PUT", "DELETE"): 허용할 HTTP 메서드 지정.GET, POST, PUT, DELETE 메서드에 대해 CORS 요청 허용, 배열로 나열 가능, * : 모든 메서드 허용allowedHeaders("*")allowedHeaders("*"): 허용할 HTTP 헤더를 지정* : 모든 헤더.allowedHeaders("Authorization", "Content-Type")allowCredentials(true)allowCredentials(true): 클라이언트가 쿠키 및 인증 정보를 서버에 보낼 수 있도록 허용한다.allowedOrigins에 지정된 출처에서만 요청할 수 있다.false로 설정되어 있으며, true로 설정하면 쿠키와 인증 정보가 포함된 요청이 허용된다.@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 모든 URL 경로에 대해 CORS 설정 적용
.allowedOrigins("http://localhost:3000") // http://localhost:3000 출처에서 오는 요청만 허용
.allowedMethods("GET", "POST", "PUT", "DELETE") // GET, POST, PUT, DELETE 메서드만 허용
.allowedHeaders("*") // 모든 HTTP 헤더 허용
.allowCredentials(true); // 쿠키 및 인증 정보 포함 요청 허용
}
이 설정을 통해 웹 애플리케이션의 CORS 정책을 세밀하게 조정할 수 있게된다.