Почему GAE игнорирует мою команду yaml, требуя входа администратора? - PullRequest
1 голос
/ 28 января 2012

Я занимаюсь разработкой приложения GAE.Использование localhost для разработки неудобно, потому что есть некоторые взаимодействующие компоненты, которые требуют, чтобы система была в Интернете.Тем не менее, я чувствую себя странно из-за предварительной версии приложения, поэтому я включаю его при устранении неполадок, а затем отключаю.Было бы лучше потребовать администратора входа, чтобы я мог иметь его в Интернете и держать его в секрете.Когда я делаю (очень простые) необходимые изменения в app.yaml и обновляю приложение, ничего не меняется.Я все еще могу получить к нему доступ без входа в систему (я проверил, что я вышел из Google).Есть идеи?Мой app.yaml текст ниже.Между прочим, единственный другой обработчик, которому требуется логин, remote_api, также плохо себя ведет.Возвращает ошибку «Этот запрос не содержит необходимого заголовка».

application: (removed for privacy)
version: 1
runtime: python
api_version: 1

handlers:
- url: /remote_api
  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
  login: admin

- url: /stylesheets
  static_dir: stylesheets

- url: /javascript
  static_dir: javascript

- url: /images
  static_dir: images

- url: /.*
  script: example.py
  login: admin  

1 Ответ

1 голос
/ 29 января 2012

Мое лучшее предположение, что вы на самом деле не вышли из системы.Это может произойти из-за задержки при использовании функции выхода из системы в других приложениях Google - во избежание необходимости повторять запрос в службе аккаунта Google для каждого запроса, App Engine использует недолговечный файл cookie, который разрешает доступ независимо от того, что GoogleУчетные записи обслуживают вещи до истечения времени ожидания (я думаю, что это 5 минут).

Если вы действительно хотите проверить, можете ли вы получить доступ к этому при выходе из системы, воспользуйтесь окном инкогнито Chrome.(Или подождите 5 минут.: -)

Поведение remote_api также может быть объяснено: по соображениям безопасности (для предотвращения определенных атак на основе Javascript) обработчик remote_api не позволяет веб-браузерам обращаться к обработчику.Он принимает запросы только от выделенной клиентской библиотеки remote_api, которая передает дополнительный заголовок, который не может быть установлен кодом Javascript.

Кстати, вероятно, лучше использовать стандартное расположение обработчика remote_api и использовать для его включения предложение builtins.:

builtins:
- remote_api: on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...