在 AppEngine 上保护 GWT 应用程序

Posted

技术标签:

【中文标题】在 AppEngine 上保护 GWT 应用程序【英文标题】:Securing GWT application on AppEngine 【发布时间】:2012-05-04 17:57:09 【问题描述】:

我在 AppEngine 上部署了 GWT 应用程序。我想限制只有管理员才能访问该应用程序。

我想使用 web.xml 中的内置安全约束设置,但我不知道如何让我的应用在 /myapp/admin url 而不是 /myapp 中响应 我正在使用 RequestFactory 与服务器通信,我希望 /gwtRequest 受到相同的约束。

谢谢你, 伊多。

【问题讨论】:

【参考方案1】:

我不知道我是否正确理解了你的问题。

如果您只想通过管理员访问,您可以配置您的应用程序如下:

<security-constraint>
    <web-resource-collection>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

<security-constraint>
    <web-resource-collection>
        <url-pattern>/loginpage</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
</security-constraint>

现在您对每个页面只有管理员访问权限,但您仍然需要对登录页面具有公共访问权限。 (您必须将“loginpage”替换为您的登录页面的网址)

如果你只想让你的 gwtRequest 在 admin-access 下让它这样:

<security-constraint>
    <web-resource-collection>
        <url-pattern>/gwtRequest/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

抱歉,我不确定是 /gwtRequest/ 还是 /gwtRequest

【讨论】:

谢谢。你解释清楚。除了登录之外,我实际上不需要公共页面

以上是关于在 AppEngine 上保护 GWT 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Android 在没有 AppEngine 的情况下重用 GWT RPC 后端

为 Web 和 Android 服务的 AppEngine GWT-RPC 服务

如何在 GWT 中为 AppEngine SystemProperty 继承模块

GWT 2.7 + GAE 应用程序在部署时寻找代码服务器

Appengine Java & GWT - 无法重新创建和打开通道

GWT/AppEngine:设计 RequestFactory 工作流以更好地处理异常