我想要求用户在访问我的GAE(Google App Engine)应用程序的某些部分时使用登录名/密码。我想限制对一组预定义用户的访问,例如在可以将新数据上传到数据存储区的页面上。
我发现 GAE 有 3 种方法可以解决这个问题,但看起来只有最后一种(最复杂的)可以解决我的问题:
使用部署描述符(
<security-constraint>
在 web.xml 中)。这不好,因为这些用户可以访问,即使作为 GAE 应用程序管理页面的查看者,他们可以在其中查看计费历史记录、浏览数据存储、日志等,这是我必须避免的事情。使用联合登录 ( Open ID ) ( https://developers.google.com/appengine/articles/openid ) 并允许用户使用他们的 Google、Yahoo! 或其他身份登录。这不是一个解决方案,因为我想限制对一小部分用户(最多 5 个)的访问,并且不允许每个人都使用该应用程序。
另一种选择是创建只能通过 HTTPS 访问的简单自定义登录页面,并让用户在 POST 请求中发送用户名和密码(它可以很简单,因为我们有安全的https连接)到 servlet,在 servlet 上生成一些会话标识符具有指定的有效性,并使其成为每个后续请求的一部分。它还需要在用户每次发送 GET 或 POST 请求时手动检查会话标识符是否存在并且同时没有过期。
关于如何维护管理员帐户的任何其他/更好的建议?可以HttpSession
帮助解决最后一个变体吗?
亲切的问候, STeN