티스토리 뷰
반응형
방법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은 아래 세가지의 조합을 말합니다.
- URI 스키마 (http, https)
- Hostname (도메인 네임)
- 포트 번호
- 즉, Hostname이 같더라도 다른 포트번호를 사용한다면 다른 Origin입니다. 그리고 http와 https를 구분합니다.
CORS? SOP?
- SOP (Same Origin Policy) - 악의적인 문서로부터의 잠재적인 공격을 방어하기 위한 웹 보안 정책
- CORS (Cross Origin Resource Sharing) - 안전한 Origin들에 대해서 SOP 보안정책을 풀어주기 위한 방법
참고
- 인프런 강의 (백기선님의 스프링부트)
- https://spring.io/guides/gs/rest-service-cors/
반응형
'Spring Framework' 카테고리의 다른 글
Spring Boot에서 특정 필드 직렬화 방식 변경하기 (JsonSerializer, JsonDeserializer) (0) | 2023.05.01 |
---|---|
BeanFactory로 Bean생성시에 주의할점 (feat. InitializingBean) (0) | 2021.11.05 |
스프링 부트로 GraphQL 시작하기 (5) | 2019.09.26 |
같은 타입의 빈(Bean)들을 컬렉션으로 주입받기 (0) | 2019.07.28 |
스프링 부트에서 컨트롤러 테스트하기 (0) | 2019.07.21 |
댓글