728x90
반응형
SOP & CORS
- SOP
- Same Origin Policy 의 약자로, 같은 Origin에서만 접근이 가능한 정책
- 예)
localhost:8080
에서localhost:8000
으로 접근 할 수 없다. - 기본적으로 SOP 정책
- CORS
- Cross-Orgin Resource Sharing 의 약자로, 다른 Origin에서도 접근이 가능한 정책
- Origin
URI Schema(http, https)
+Hostname
+Port
예시
1. Server(http://localhost:8080
)
// Application.java
// @CrossOrigin은 Controller나 Method에 추가하거나
// WebMvcConfigurer를 상속받아 구현한 전역 클래스에 추가하여 사용가능
@SpringBootApplication
@RestController
// @CrossOrigin(origins = "http://localhost:18080") // Controller 단
public class Application {
// @CrossOrigin(origins = "http://localhost:18080") // Method 단
@GetMapping("/hello")
public String hello() {
return "hello";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
// WebConfig.java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
// /** : 모든 요청
registry.addMapping("/**").allowedOrigins("http://localhost:18080");
}
}
2. Client(http://localhost:18080
)
// pom.xml
// jquery 추가
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1</version>
</dependency>
// index.html
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Page Title</title>
</head>
<body>
<h1>CORS Client</h1>
<script src="/webjars/jquery/3.3.1/dist/jquery.min.js"></script>
<script>
$(function () {
$.ajax("http://localhost:8080/hello")
.done(function(msg) {
alert(msg);
})
.fail(function() {
alert("fail");
});
});
</script>
</body>
</html>
결과
참고
https://docs.spring.io/spring/docs/5.0.7.RELEASE/spring-framework-reference/web.html#mvc-cors
728x90
반응형
'Dev > Spring Boot' 카테고리의 다른 글
[스프링 부트 개념과 활용] 스프링 데이터 2부 (0) | 2020.08.27 |
---|---|
[스프링 부트 개념과 활용] 스프링 데이터 1부 (0) | 2020.08.26 |
[스프링 부트 개념과 활용] 스프링 웹 MVC 10부 (0) | 2020.08.26 |
[스프링 부트 개념과 활용] 스프링 웹 MVC 9부 (0) | 2020.08.26 |
[스프링 부트 개념과 활용] 스프링 웹 MVC 8부 (0) | 2020.08.26 |
댓글