我想要求用户在访问我的GAE(Google App Engine)应用程序的某些部分时,使用登录名/密码来使用。我想限制对一组预定义用户的访问,例如,在页面上可以将新数据上传到数据存储区。Google App Engine上的身份验证(网页)
我发现有在GAE 3种方式如何可以解决的,但它看起来像只有最后一个(最复杂),可能是我的问题的解决方案:
使用部署描述符(
<security-constraint>
in web.xml)。这并不好,因为这些用户有权访问GAE应用程序的管理页面,他们可以在其中查看帐单历史记录,浏览数据存储区,日志等,这是我必须避免的。使用联合登录(打开ID)(https://developers.google.com/appengine/articles/openid)并允许用户使用他们的Google,Yahoo!或其他身份登录。这不是一个解决方案,因为我想限制访问一小部分用户(最多5个),并且不允许每个人都使用该应用程序。
另一种选择是只通过HTTPS创建简单自定义登录页面访问,让用户在POST请求发送用户名&密码(也可以是普通的,因为我们有安全HTTPS连接)至servlet在servlet上生成一些具有指定有效性的会话标识符,并使其成为每个后续请求的一部分。如果会话标识符存在且每次用户发送GET或POST请求时都需要检查并且不会手动过期。
关于如何维护管理员帐户的任何其他/更好的建议? HttpSession
可以帮助最后一个变体?
亲切的问候, 斯登
你在这里混淆了两个完全不同的问题,认证和授权。您可以将前两种解决方案(身份验证)中的任意一种与您自己的解决方案进行组合以检查授权。最简单的方法是维护数据存储中允许用户的列表,并在用户登录时查找用户权限,如Peter和Adam在下面所示。 – 2012-04-12 00:16:13