【问题标题】:gwt-appengine app with part of its content protected and the rest publicgwt-appengine 应用程序,其部分内容受保护,其余部分公开
【发布时间】:2011-09-15 15:19:55
【问题描述】:

我整天都在为一个问题苦苦挣扎。我相信一定有一些简单的解决方案,很多人已经实施了,因为它在我看来是一个基本设置。

我正在使用 requestfactory 构建一个带有 GWT 和 appengine 的应用程序。这个应用程序有一些每个人都应该可以访问的“页面”(它们实际上是 MVP 视图)。它就像主页和描述我们提供的服务的几个视图。然后,如果您想使用该服务,您必须登录(使用谷歌帐户和所有这些)。只有登录后,您才能访问应用程序中的其余视图(页面)。问题是,如何处理这个问题?有些页面和一些 requestfactory 调用是公开的,而其他一些必须对已登录的人可用?

我已经放弃了 web.xml 中的 auth-constraints 标记,因为它们可以全部或全部使用。

下一个替代方法是使用 servlet 过滤器(就像费用演示那样)。这可能有效,但前提是“打开”或未受保护的页面不需要访问来自 appengine 数据存储区的任何数据(而且我不想关闭那扇门,也许将来我想显示状态或数量用户等)。这样做的原因是,使用请求工厂,您只有一个 servlet,因此如果您放置一个过滤器,如果用户未登录,您将关闭与 appengine 的所有通信。

我正在考虑实现这个过滤器,一旦用户登录,所有的东西都需要 requesfactory,并且还为我可能需要在“主页或信息页面”中显示的数据实现一些 RPC 服务从数据存储中检索。不过对我来说它看起来有点矫枉过正。

另一种选择是检查用户是否登录了我想要保护的所有请求工厂服务方法。但这看起来也不优雅……

有人遇到过同样的问题吗?有什么想法吗?

如果能提供任何帮助,我将不胜感激。

谢谢,

【问题讨论】:

标签: google-app-engine gwt


【解决方案1】:

您说身份验证约束是“全有或全无”,但事实并非如此 - 它们是每个 url。有关详细信息,请参阅here。此外,您的 servlet 过滤器和数据存储访问的连接是不合理的 - 两者彼此无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多