स्प्रिंग बूट - कोर सपोर्ट
क्रॉस-ओरिजनल रिसोर्स शेयरिंग (कोर) एक सुरक्षा अवधारणा है जो वेब ब्राउज़र में कार्यान्वित संसाधनों को प्रतिबंधित करने की अनुमति देती है। यह जावास्क्रिप्ट कोड को विभिन्न मूल के खिलाफ अनुरोधों का उत्पादन या उपभोग करने से रोकता है।
उदाहरण के लिए, आपका वेब एप्लिकेशन 8080 पोर्ट पर चल रहा है और जावास्क्रिप्ट का उपयोग करके आप 9090 पोर्ट से Restful वेब सेवाओं का उपभोग करने का प्रयास कर रहे हैं। ऐसी स्थितियों के तहत, आप अपने वेब ब्राउज़र पर क्रॉस-ओरिजिनल रिसोर्स शेयरिंग सुरक्षा समस्या का सामना करेंगे।
इस समस्या से निपटने के लिए दो आवश्यकताओं की आवश्यकता है -
रेस्टफुल वेब सेवाओं को क्रॉस-ओरिजिनल रिसोर्स शेयरिंग का समर्थन करना चाहिए।
रेस्टफुल वेब सेवा एप्लिकेशन को 8080 पोर्ट से एपीआई (एस) तक पहुंचने की अनुमति देनी चाहिए।
इस अध्याय में, हम एक विस्तृत वेब सेवा अनुप्रयोग के लिए क्रॉस-ऑरिजनल अनुरोध को सक्षम करने के बारे में विस्तार से जानने जा रहे हैं।
नियंत्रक विधि में CORS सक्षम करें
हमें मूल वेब सेवा का उपयोग करके मूल सेट करने की आवश्यकता है @CrossOriginनियंत्रक विधि के लिए एनोटेशन। यह @CrossOrigin एनोटेशन विशिष्ट REST API का समर्थन करता है, न कि संपूर्ण एप्लिकेशन के लिए।
@RequestMapping(value = "/products")
@CrossOrigin(origins = "http://localhost:8080")
public ResponseEntity<Object> getProduct() {
return null;
}
ग्लोबल कॉर्स कॉन्फ़िगरेशन
हमें आपके स्प्रिंग बूट एप्लिकेशन को विश्व स्तर पर कॉर्स कॉन्फ़िगरेशन समर्थन सेट करने के लिए दिखाए गए @Bean कॉन्फ़िगरेशन को परिभाषित करने की आवश्यकता है।
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/products").allowedOrigins("http://localhost:9000");
}
};
}
मुख्य स्प्रिंग बूट एप्लिकेशन में विश्व स्तर पर कॉर्स कॉन्फ़िगरेशन को सेट करने के लिए कोड नीचे दिया गया है।
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");
}
};
}
}
अब, आप एक स्प्रिंग बूट वेब एप्लिकेशन बना सकते हैं जो 8080 पोर्ट पर चलता है और आपका Restful वेब सर्विस एप्लिकेशन जो 9090 पोर्ट पर चल सकता है। रेस्टफुल वेब सेवा के बारे में कार्यान्वयन के बारे में अधिक जानकारी के लिए, आप शीर्षक वाले अध्याय का उल्लेख कर सकते हैंConsuming RESTful Web Services इस ट्यूटोरियल का।