Аутентификация на веб-странице Google App Engine ()

Я хотел бы потребовать, чтобы пользователь использовал логин/пароль при доступе к некоторым частям моего GAE(Google App Engine). Я хочу ограничить доступ к набору предопределенных пользователей, например. на странице, где новые данные могут быть загружены в Datastore.

Я обнаружил, что в GAE есть 3 способа решения этой проблемы, но похоже, что только последний (самый сложный)может быть решением моей проблемы:

  1. Использовать дескриптор развертывания(в web.xml). Это нехорошо, поскольку эти пользователи имеют доступ, даже в качестве зрителей, к административной странице приложения GAE, где они могут просматривать историю выставления счетов, просматривать хранилище данных, журналы и т. д., а этого мне следует избегать.

  2. Используйте федеративный логин(Open ID)(https://developers.google.com/appengine/articles/openid)и разрешите пользователям использовать их Google, Yahoo! или другие удостоверения для входа. Это не решение, так как я хочу ограничить доступ к небольшому набору пользователей (макс. 5)и не разрешать всем пользоваться приложением.

  3. Другой вариант — создать простую пользовательскую страницу входа , доступную только через HTTPS, и разрешить пользователю отправлять имя пользователя и пароль в POST-запросе (это может быть просто, так как у нас есть безопасный https подключение )к сервлету, на сервлете сгенерируйте некоторый идентификатор сеанса с указанной действительностью и сделайте его частью каждого последующего запроса. Он также должен проверять каждый раз, когда пользователь отправляет запрос GET или POST, существует ли идентификатор сеанса и не истекает ли срок его действия вручную.

Есть ли другие/лучшие предложения по управлению учетными записями администратора? Может HttpSessionпомочь с последним вариантом?

С уважением, STeN

8
задан gman 24 January 2014 в 09:32
поделиться