Spring Boot – CORS Support
NỘI DUNG BÀI VIẾT
Cross-Origin Resource Sharing (CORS) là 1 khái niệm bảo mật cho phép bạn hạn chế các tài nguyên được triển khai trong trình duyệt web. Nó ngăn mã JavaScript tạo ra hoặc sử dụng các yêu cầu đối với các nguồn khác nhau.
Ví dụ: ứng dụng web của bạn đang chạy trên cổng 8080 và bằng cách sử dụng JavaScript bạn đang cố gắng sử dụng các dịch vụ web RESTful từ cổng 9090. Trong những tình huống như vậy, bạn sẽ phải đối mặt với vấn đề bảo mật Cross-Origin Resource Sharing trên trình duyệt web.
Cần có 2 yêu cầu để xử lý vấn đề này:
- Các dịch vụ web RESTful nên hỗ trợ Cross-Origin Resource Sharing.
- Ứng dụng dịch vụ web RESTful sẽ cho phép truy cập API(s) từ cổng 8080.
Trong chương này, chúng ta sẽ tìm hiểu chi tiết về cách Enable Cross-Origin Requests cho ứng dụng RESTful Web Service.
Enable CORS trong Controller Method
Chúng ta cần đặt nguồn gốc cho dịch vụ web RESTful bằng cách sử dụng annotation @CrossOrigin cho phương thức controller. Annotation @CrossOrigin này hỗ trợ API REST cụ thể chứ không phải cho toàn bộ ứng dụng.
Global CORS Configuration
Chúng tôi cần xác định cấu hình @Bean được hiển thị để đặt hỗ trợ cấu hình CORS trên toàn cầu cho ứng dụng Spring Boot của bạn.
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/products").allowedOrigins("http://localhost:9000");
}
};
}
Code language: PHP (php)
Mã để thiết lập cấu hình CORS trên toàn cầu trong ứng dụng Spring Boot chính được đưa ra dưới đây.
package com.tutorialspoint.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/products").allowedOrigins("http://localhost:8080");
}
};
}
}
Code language: JavaScript (javascript)
Bây giờ, bạn có thể tạo ứng dụng web Spring Boot chạy trên cổng 8080 và ứng dụng dịch vụ web RESTful của bạn có thể chạy trên cổng 9090. Để biết thêm chi tiết về cách triển khai về RESTful Web Service, bạn có thể tham khảo chương có tiêu đề Consuming RESTful Web Services của hướng dẫn này.
Nguồn:
https://www.tutorialspoint.com/spring_boot/spring_boot_cors_support.htm
Leave a Reply