Spring MVC/04.Rest [springboot]CORS 설정 - CORS(Cross Origin Resource Sharing)는 REST 서비스를 제공하려면 필요한 녀석이다. 물론 CORS를 제공하지 않더라도 서비스가 가능하기는 하지만 서비스를 받는 쪽에서 RestTemplate을 이용하는 등 부가적인 작업이 필요하다. https://goodteacher.tistory.com/267?category=828440 03. RestTemplate RestTemplate 가끔 REST API를 자바 영역에서 사용해야할 경우가 있다. ajax로 처리해야 하는데 서비스를 제공하는 서버에서 cross origin에서의 접근을 허용하지 않는 경우가 대표적이다. 이런 경우는 자 goodteacher.tistory.com 이번 포스트에서는 SpringBoot를 이용해서 CORS를 설정하는 방법에 대해 정리해보자. Spring Boot에서 CORS 설정 개별 controller에 설정하기 첫 번째 방법은 각각의 @Controller 들에 애너테이션을 이용해서 설정하는 방법이다. 이때는 @CorsOrigin 애너테이션이 사용된다. @CrossOrigin은 String [] 로 접속하는 origin(클라이언트 주소)를 설정할 수 있다. @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface CrossOrigin { @AliasFor("origins") String[] value() default {}; @AliasFor("value") String[] origins() default {}; } 아래의 예는 모든 클라이언트에서의 접속을 허용하는 예이다. @RestController @RequestMapping("/api/category") @CrossOrigin("*") public class CategoryController { . . . } @Configuration에서 통합 설정 첫 번째 방법은 세세하게 컨트롤러마다 설정할 수 있다는 장점이 있지만 Controller가 많아지고, 어차피 오픈하기로 했다면 다소 번거로움이 있다. 이때는 @Controller에서 WebMvcConfigurer를 implements 한 후 addCorsMappings 메서드를 재정의 해서 설정할 수 있다. 다음의 예는 api의 하위 모든 리소스에 대해 모든 origin으로부터의 접속을 허용하는 예이다. @SpringBootApplication public class ApsHelperApplication implements WebMvcConfigurer{ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**").allowedOrigins("*"); } public static void main(String[] args) { SpringApplication.run(ApsHelperApplication.class, args); } } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기모두의 코딩 저작자표시 비영리 변경금지 Contents SpringBoot에서CORS설정 개별controller에설정하기 @Configuration에서통합설정 당신이 좋아할만한 콘텐츠 [Swagger] Pageable 객체 처리 2022.05.05 [swagger]swagger와 interceptor 2021.12.09 [spring boot]MockMVC 테스트시 response content의 한글 깨짐 2021.08.30 03. RestTemplate 2020.07.14 댓글 0 + 이전 댓글 더보기