मुझे जर्सी आधारित आरईएसटी सर्वर में CORS समर्थन लागू करने की आवश्यकता है। मैं कुछ उपलब्ध material और सूचनात्मक tutorials से गुजर चुका हूं। मैंने पाया दो दृष्टिकोण लोग प्रयोग कर रहे हैं:सीओआरएस जावा सर्वर साइड कार्यान्वयन
दृष्टिकोण-1:
सरल और सीधा रास्ता है, जहां एक HTTP
फिल्टर जो जवाबी कार्रवाई के लिए CORS
हैडर कहते हैं (जर्सी विशिष्ट)
public class ResponseCorsFilter implements ContainerResponseFilter {
public ContainerResponse filter(ContainerRequest req, ContainerResponse contResp) {
ResponseBuilder resp = Response.fromResponse(contResp.getResponse());
resp.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
String reqHead = req.getHeaderValue("Access-Control-Request-Headers");
if(null != reqHead && !reqHead.equals(null)){
resp.header("Access-Control-Allow-Headers", reqHead);
}
contResp.setResponse(resp.build());
return contResp;
}
}
लागू दृष्टिकोण -2:
पूरी तरह कार्यान्वित CORS इसके विनिर्देश के अनुसार यानी प्रीफलाइट अनुरोध हैंडलिंग और सभी हेडर समर्थन। ऐसे एक ओपन-सोर्स जावा कार्यान्वयन का निरीक्षण स्रोत कोड cors-filter
मेरा प्रश्न यह है कि कौन सा दृष्टिकोण लिया जाना चाहिए? दृष्टिकोण -1 बनाम दृष्टिकोण -2 के नकारात्मक पक्ष क्या हो सकता है?
मेरा उपयोग केस सभी मूल/विधियों की अनुमति दी जा सकती है और Authorization
HTTP शीर्षलेख सभी REST
अनुरोधों का हिस्सा होगा। मैं दृष्टिकोण -1 की ओर झुका हुआ हूं क्योंकि ऐसा लगता है कि अधिकांश डिफ़ॉल्ट सीओआरएस सेटिंग्स मेरे उपयोग के मामले में पर्याप्त होंगी, लेकिन यह सुनिश्चित नहीं है कि सर्वर पक्ष में लागू पूर्ण कॉरस चश्मा नहीं होने पर कोई भी समस्या उत्पन्न होगी।
आपकी प्रतिक्रिया के लिए धन्यवाद, हाँ प्रत्येक अनुरोध प्राधिकरण हैडर प्राप्त करने पर जो सर्वर किसी भी प्रसंस्करण करने से पहले की पुष्टि करता है में संग्रहीत एक सार्वजनिक टोकन के साथ टैग किया जाता है। – harsh