[Spring] CORS Cross Domain 해결

동민·2022년 3월 21일
0

Spring boot 개발 시,
도메인이 다른 클라이언트에서 서버 Rest API 를 호출하면 CORS 이슈가 발생하는 경우가 있다.

Spring boot에서는 디폴트 메소드로 GET, POST, HEAD 메소드에 대해서 CORS를 열어주지만,
DELETE, PUT 등에 대해서는 추가로 설정해주어야 한다.

CorsConfiguration.java

private static final List<String> DEFAULT_PERMIT_METHODS = Collections.unmodifiableList(
			Arrays.asList(HttpMethod.GET.name(), HttpMethod.HEAD.name(), HttpMethod.POST.name()));

해결)
yml, spring-cloud-configallowed-methods 추가

xxx:
  common:
    yyy:
      cors:
        allow-credentials: true
        allowed-methods:
          - GET
          - POST
          - PUT
          - DELETE
        allowed-origins:
          - "https://XXX.XXX.com"

allowed-methods 는 덮어쳐지므로 사용하는 모든 메소드 추가!

또는

호출되는 컨트롤러 메소드에 @CrossOrigin 어노테이션 추가!

@PostMapping(/path”)
@CrossOrigin
public Response test(Request request) {
    // biz.
}

참고
[Spring] Postman Rest API CORS 테스트

https://velog.io/@kmdngmn/Spring-Postman-Rest-API-CORS-%ED%85%8C%EC%8A%A4%ED%8A%B8

profile
BE Developer

0개의 댓글