Google API Explorer не работает для моего развертывания Google, когда я не вошел в систему - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть проект Google credible-nation-130012, в котором я развернул приложение, написанное на Java.Он использует стандартную среду AppEngine.Единственное содержимое - это конечная точка Google.Вы можете увидеть источники на GitHub: https://github.com/mhdirkse/least-common-multiplier.

Пока я не вошел в систему с Google, я хотел протестировать свое развертывание.Для этого я посетил https://credible -nation-130012.appspot.com / _ah / api / explorer с помощью Firefox.Мой API не появился.Я нажал 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 'Access-Control-Allow-Origin'отсутствует). [Узнать больше] Запрос перекрестного происхождения заблокирован: та же политика происхождения запрещает чтение удаленного ресурса по номеру 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 «Access-Control-Allow-Origin»). [Узнать больше] Запрос на перекрестное происхождение заблокирован: одна и та же политика происхождения запрещает чтениеудаленный ресурс по адресу 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 для входа. После этого мойAPI появился в https://credible-nation-130012.appspot.com/_ah/api/explorer и это сработало.

Я полагаю, что API-обозреватель не может правильно получить доступ https://accounts.google.com. Он ожидает получить обратно заголовок Access-Control-Allow-Origin, но этого нет.Это как-то связано с моим приложением, или это ошибка в проводнике API?Или это поведение предназначено Google?Любая помощь приветствуется.

С уважением,

Мартейн Дирксе

Кстати: я демонстрирую этот проект для приема на работу.Если я получу помощь по этому вопросу, я сообщу об этом на GitHub и в общении с возможными работодателями.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

У меня было ограничение безопасности в 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 credible-nation-130012.appspot.com/_ah/api/explorer требуется роль администратора.Но удаленные приложения, обращающиеся к API конечных точек, не являются администраторами.Наложение этого ограничения безопасности кажется бессмысленным.

Ограничение доступа к моему API также не так важно.Это игрушечный проект, который я хочу продемонстрировать.

Я видел, что после выхода из системы требуется время, чтобы это дало эффект.Завтра я проверю, работает ли мое приложение так, как задумано.

Мне больше не нужна помощь.

0 голосов
/ 18 сентября 2018

Возможно, проблема в вашем web.xml.Вы установили ограничение авторизации администратора для всех URL, и API Explorer должен получить доступ к определенному пути URL /_ah/api/discovery/v1/apis (и путям под ним) для работы.Снимите ограничение или ослабьте его, чтобы исключить /_ah/api.

...