मेरे पास एक Google प्रोजेक्ट विश्वसनीय-राष्ट्र-130012 है जिसमें मैंने जावा में लिखा एक ऐप तैनात किया है। यह AppEngine मानक वातावरण का उपयोग करता है। केवल सामग्री एक Google समापन बिंदु है। आप GitHub पर स्रोत देख सकते हैं: https://github.com/mhdirkse/least-common- गुणक

Google के साथ लॉग इन नहीं होने पर, मैं अपने परिनियोजन का परीक्षण करना चाहता था। ऐसा करने के लिए, मैंने https://credible-nation-130012.appspot पर विजिट किया। com/_ah/api/explorer Firefox का उपयोग कर रहे हैं। मेरा एपीआई प्रकट नहीं हुआ। मैंने डेवलपर जानकारी के लिए F12 दबाया और निम्नलिखित त्रुटियां देखीं:

https://apis-explorer.appspot.com/apis-explorer/?base=https://credible-nation-130012.appspot.com/_ah/api#p/

क्रॉस-ओरिजिन अनुरोध अवरोधित: वही मूल नीति https://accounts.google.com/ServiceLogin?service= ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttps://credible-nation-130012.appspot.com/_ah/api/discovery/v1/apis। (कारण: CORS हेडर 'पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति' गायब है)। [अधिक जानें] क्रॉस-ओरिजिन अनुरोध अवरोधित: वही मूल नीति https://accounts.google.com/ServiceLogin?service= ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttps://credible-nation-130012.appspot.com/_ah/api/discovery/v1/apis। (कारण: CORS अनुरोध सफल नहीं हुआ)।[अधिक जानें] क्रॉस-ओरिजिन अनुरोध अवरोधित: वही मूल नीति https://accounts.google.com/ServiceLogin?service= ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttps://credible-nation-130012.appspot.com/_ah/api/discovery/v1/apis। (कारण: CORS हेडर 'पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति' गायब है)। [अधिक जानें] क्रॉस-ओरिजिन अनुरोध अवरोधित: वही मूल नीति https://accounts.google.com/ServiceLogin?service= ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttps://credible-nation-130012.appspot.com/_ah/api/discovery/v1/apis। (कारण: CORS अनुरोध सफल नहीं हुआ)।[अधिक जानें]

फिर मैंने टैब बंद कर दिया और लॉग इन करने के लिए console.cloud.google.com पर गया। इसके बाद मेरा एपीआई https://credible-nation-130012.appspot.com/_ah/api/explorer और यह काम कर गया।

मुझे लगता है कि एपीआई एक्सप्लोरर https://accounts.google.com को ठीक से एक्सेस नहीं कर सकता है। यह एक हेडर एक्सेस-कंट्रोल-अनुमति-उत्पत्ति वापस पाने की उम्मीद करता है लेकिन वह मौजूद नहीं है। क्या इसका मेरे एप्लिकेशन से कोई लेना-देना है, या यह एपीआई एक्सप्लोरर में एक बग है? या यह व्यवहार Google द्वारा अभिप्रेत है? किसी भी मदद का स्वागत है।

आदर के साथ,

मार्टिजन डर्कसे

वैसे: मैं इस परियोजना को नौकरी के आवेदन के लिए प्रदर्शित कर रहा हूं। अगर मुझे इस प्रश्न पर सहायता मिलती है, तो मैं इसे गिटहब पर और संभावित नियोक्ताओं के साथ संचार में स्पष्ट कर दूंगा।

0
Martijn Dirkse 18 सितंबर 2018, 23:00

2 जवाब

सबसे बढ़िया उत्तर

समस्या आपके web.xml में होने की संभावना है। आपने सभी URL के लिए एक व्यवस्थापक प्रमाणीकरण बाधा निर्धारित की है, और API एक्सप्लोरर को कार्य करने के लिए एक निश्चित URL पथ /_ah/api/discovery/v1/apis (और इसके अंतर्गत पथ) तक पहुंचने की आवश्यकता है। बाधा को हटा दें या /_ah/api को बाहर करने के लिए इसे ढीला कर दें।

1
saiyr 18 सितंबर 2018, 23:21

मेरे पास web.xml में एक सुरक्षा बाधा थी, जो इस प्रकार है:

<security-constraint>
  <web-resource-collection>
    <web-resource-name>all</web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>admin</role-name>
  </auth-constraint>
  <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>

मुझे लगता है कि वह त्रुटि थी। यह कहता है कि URL क्रेडिबल-नेशन-130012.appspot.com/_ah/api/explorer को 'व्यवस्थापक' की भूमिका की आवश्यकता है। लेकिन एंडपॉइंट एपीआई तक पहुंचने वाले रिमोट एप्लिकेशन प्रशासक नहीं हैं। इस सुरक्षा बाधा को लगाना बेमानी लगता है।

मेरे एपीआई तक पहुंच को प्रतिबंधित करना भी उतना महत्वपूर्ण नहीं है। यह एक खिलौना परियोजना है जिसे मैं प्रदर्शित करना चाहता हूं।

मैंने देखा है कि लॉग आउट करने के बाद इसके प्रभावी होने में समय लगता है। मैं कल जांच करूंगा कि मेरा ऐप इरादा के अनुसार व्यवहार करता है या नहीं।

मुझे अभी और मदद की जरूरत नहीं है।

0
Martijn Dirkse 19 सितंबर 2018, 00:24