서버/Spring boot

#CORS 설정하기

paran21 2022. 2. 12. 10:34

#SOP(Same-Origin Policy)

  • 같은 Origin에만 요청을 보낼 수 있게 제한하는 보안 정책
  • Origin의 구성
    • URI Schema(ex. http, https)
    • Hostname(ex. localhost, naver.com)
    • Port(ex. 80, 8080)
    • 이 중에 하나라도 구성이 다르면 SOP 정책에 걸림!

 

#CORS(Cross-Origin Resource Sharing)

서로 다른 Origin끼리 요청을 주고 받을 수 있게 정해둔 표준

 

1. Annotation 이용하기

origins, methods, maxAge, allowedHeaders를 각각 지정할 수 있다.

메소드에도 지정가능.

@GetMapping("/api/get")
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class Controller {
}

 

2. Global 설정

아래와 같이 설정할 수 있다.

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:8080")
                .allowedMethods("*");
    }
}
  • addMapping : URL 패턴 정의
  • allowedOrigins : 자원 공유를 허락할 Origin을 지정. 여러 origin 설정 가능.
  • allowedMethod : HTTP method 지정. 여러 method 지정할 수 있고, *도 사용가능.
  • maxAge : 원하는 시간만큼 pre-flight 리퀘스트를 캐싱해둘 수 있다.

 

참고자료

https://shinsunyoung.tistory.com/86

https://dev-pengun.tistory.com/entry/Spring-Boot-CORS-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

'서버 > Spring boot' 카테고리의 다른 글

#에러처리  (2) 2022.02.07
#AOP  (0) 2022.02.07
#ORM, JPA, Spring data JPA, SQL  (0) 2022.02.05
#Spring security  (0) 2022.01.28
#DI, IoC, Bean  (0) 2022.01.28