SpringBoot Cors 에러 해결방법

청포도봉봉이·2023년 5월 31일
0

Spring

목록 보기
16/32
post-thumbnail

WebConfig

  • WebConfig는 Spring Framework에서 제공하는 설정 파일로, 웹 애플리케이션의 설정을 구성하는 클래스입니다. 주로 Spring Boot 프로젝트에서 사용되며, 웹 애플리케이션의 전반적인 동작을 세부적으로 조정하고 구성할 수 있습니다. 예를 들어, 인터셉터, 리소스 핸들러, CORS 설정 등을 포함할 수 있습니다.

Cors

  • CORS(Cross-Origin Resource Sharing)는 웹 브라우저의 동일 출처 정책(Same-Origin Policy)로 인해 발생하는 제약을 극복하기 위한 메커니즘입니다. 동일 출처 정책은 웹 애플리케이션이 동일한 출처에서만 리소스를 요청하도록 제한하는 보안 정책입니다. 출처는 프로토콜, 호스트, 포트 번호로 구성되며, 출처가 다른 경우에는 브라우저에서 해당 리소스 접근을 차단합니다.

  • 다른 출처에서 리소스 요청을 허용하기 위한 정책을 정의하고, 서버와 클라이언트 간의 상호작용을 가능하게 합니다. 예를 들어, 웹 애플리케이션의 API 서버가 다른 도메인에서 온 요청을 처리해야 할 때 CORS를 사용하여 해당 요청을 허용할 수 있습니다.

경로: /src/main/java/{project}/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("/**")
                .allowedOrigins("http://example.com") // 허용할 도메인 설정
                .allowedMethods("GET", "POST", "PUT", "DELETE") // 허용할 HTTP 메소드 설정
                .allowedHeaders("Origin", "Content-Type", "Accept") // 허용할 헤더 설정
                .allowCredentials(true) // 인증정보 허용 여부
                .maxAge(3600); // preflight 요청의 유효시간 설정
    }
}

위의 코드에서 allowedOrigins, allowedMethods, allowedHeaders, allowCredentials, maxAge 등의 메소드를 사용하여 CORS 정책을 설정할 수 있습니다.

allowedOrigins: 허용할 도메인을 설정합니다. 여러 도메인을 허용하려면 쉼표로 구분하여 추가하면 됩니다. *를 사용하면 모든 도메인을 허용합니다.
allowedMethods: 허용할 HTTP 메소드를 설정합니다.
allowedHeaders: 허용할 헤더를 설정합니다.
allowCredentials: 인증정보를 허용할지 여부를 설정합니다.
maxAge: preflight 요청의 유효시간을 설정합니다.

위의 예시 코드에서는 /**를 사용하여 모든 URL에 대해 CORS 설정을 적용하도록 했습니다. 필요에 따라 특정 URL 패턴에 대해서만 설정할 수도 있습니다.

profile
자존감 낮아질 시간에 열심히 학습하고 커밋하자

0개의 댓글