【问题标题】:Prevent Google App Engine from remembering session of non-admin user when using security-constraint使用安全约束时,防止 Google App Engine 记住非管理员用户的会话
【发布时间】:2011-12-07 07:24:58
【问题描述】:

我正在浏览 this article,但遇到了一个问题。想象一下,我在 web.xml 中有以下规则:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Admin access</web-resource-name>
        <url-pattern>/AdminPanel.jsp</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

然后非管理员用户打开 AdminPanel.jsp,GAE 将他重定向到 Google 帐户登录页面,他输入他的凭据并从逻辑上获取此页面

Error: Forbidden
Your client does not have permission to get URL /AdminPanel.jsp from this server. 

现在我无法使用另一个 Google 帐户重新登录,因为我仍然以错误用户身份进行身份验证并且 GAE 将 ACSID cookie 用于应用网址。我总是会收到上面提到的错误消息。有没有办法优雅地解决这个问题?我希望客户能够使用适当的凭据重新登录。客户登录多个帐户的情况也是可能的。我个人有 Google Apps 帐户和 Gmail 帐户。所有 Google 应用程序(例如 GMail)都有在帐户之间切换的选项。我可以这样做吗?

【问题讨论】:

    标签: google-app-engine servlets servlet-filters


    【解决方案1】:

    在应用的 servlet 中检查用户的凭据,而不是使用 web.xml。如果他们已登录但未获得授权,请为他们提供退出的机会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 2012-11-21
      相关资源
      最近更新 更多