티스토리 뷰

반응형

방법1. 특정 컨트롤러나 요청에 대해서 Cross Origin 허용하기

  • @CrossOrigin 애노테이션 사용하기
@RestController
@CrossOrigin(origins = "http://localhost:63342") //해당 origin 승인하기
@RequestMapping("/api/books")
public class VocaTestApiController {
    ...
}

 

방법2. 전역설정을 통해서 Cross Origin 허용하기

  • WebMvcConfigurer의 addCorsMappings 메소드 활용하기
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 WebMvcConfigurerImpl implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") //모든 요청에 대해서
                .allowedOrigins("http://localhost:63342"); //허용할 오리진들
    }
}

 

Origin?

  • Origin은 아래 세가지의 조합을 말합니다.
    1. URI 스키마 (http, https)
    2. Hostname (도메인 네임)
    3. 포트 번호
  • 즉, Hostname이 같더라도 다른 포트번호를 사용한다면 다른 Origin입니다. 그리고 http와 https를 구분합니다.

CORS? SOP?

  • SOP (Same Origin Policy) - 악의적인 문서로부터의 잠재적인 공격을 방어하기 위한 웹 보안 정책
  • CORS (Cross Origin Resource Sharing) - 안전한 Origin들에 대해서 SOP 보안정책을 풀어주기 위한 방법

 

 

참고

반응형
댓글