티스토리 뷰
CORS
SOP와 CORS
Single-Origin Policy
단일 Origin에만 요청을 보낼 수 있다는 것을 의미하는 정책
기본적으로 SOP가 적용되어 있어서, Origin이 다르면 호출할 수 없다.
REST API가 http://localhost:8080 을 통해서 서비스 되고있고, 18080 포트를 사용하는 애플리케이션에서 그 REST API를 호출하려고 한다. 기본적으로 SOP에 위반 되기 때문에 호출하지 못한다.
Cross-Origin Resource Sharing
SOP를 우회하기 위한 표준
서로 다른 Origin이 리소스를 공유할 수 있는 기술
Origin?
URI 스키마 (http, https)
hostname (io.namjune, localhost)
포트(8080, 18080)
Spring MVC @CrossOrigin
스프링 부트에서 @CrossOrigin에 관한 빈 설정들을 자동으로 해주기 때문에 그냥 사용하면 된다. 또는 WebMvcConfigurer 사용해서 글로벌로 설정할 수 있다.
@Controller나 @RequestMapping에 추가하거나
("/account")
public class AccountController {
("/{id}")
public Account retrieve( Long id) {
// ...
}
("/{id}")
public void remove( Long id) {
// ...
}
}(origins = "http://domain2.com", maxAge = 3600)
("/account")
public class AccountController {
("/{id}")
public Account retrieve( Long id) {
// ...
}
("/{id}")
public void remove( Long id) {
// ...
}
}WebMvcConfigurer 사용해서 글로벌 설정
모든 api를 localhost:9090에 CORS 허용하도록 등록
public class WebConfig implements WebMvcConfigurer {
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:9090");
}
}ajax로 CORS 동작 확인하기
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>CORS Test</h1>
<script src="/webjars/jquery/dist/jquery.min.js"></script>
<script>
$(function() {
$.ajax("http://localhost:8080/hello")
.done(function(msg) {
alert(msg);
})
.fail(function() {
alert("fail");
});
});
</script>
</body>
</html>
'ICT Eng > Spring' 카테고리의 다른 글
[Spring Boot] Spring REST Client (0) | 2019.07.05 |
---|---|
[Spring Boot] Spring Security 자동 설정과 커스터마이징 (0) | 2019.07.05 |
[Spring Boot] Spring HATEOAS 활용 (0) | 2019.01.25 |
[Spring Boot] 템플릿 엔진, HtmlUnit, ExceptionHandler (0) | 2019.01.24 |
[Spring Boot] webjars, index 페이지, 파비콘 활용 (2) | 2019.01.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Raspberry Pi
- JPA
- Spring
- springboot
- AWS
- 인프런
- vuex
- 한밭대학교
- 알고리즘
- RBT
- github
- 젠킨스
- 정렬
- 시간복잡도
- Algorithm
- ORM
- Spring Boot
- Java
- 한밭이글스
- 스프링부트
- Wisoft
- IT융합인력양성사업단
- 라즈베리파이
- 자바
- 무선통신소프트웨어연구실
- 레드블랙트리
- 순환
- Recursion
- vuejs
- Vue.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함