Google App Engine 应用程序中的静态文件授权(未使用 Google 帐户)

Authorization for Static Files in Google App Engine application (not using Google Account)

我在 Google App Engine (GAE) 上为 Java 部署了一个应用程序。我正在使用 Google Identity Toolkit 进行身份验证(而不是 GAE 提供的标准 Google 基于帐户的身份验证)。前端基于 GWT。

我有一些静态内容(图像文件)位于 war/static/images 文件夹中。我想将对这些文件的访问限制为仅登录用户的子集,即围绕这些文件添加授权。 GAE 提供 security-constraits 但这对我不起作用,因为我没有使用 Google 帐户,即便如此,它也没有根据我的要求提供完全授权。

围绕这些静态资产添加授权的最佳方式是什么?

Google Appengine 将静态文件存储在另一台服务器中,而不是与您的应用程序所在的应用程序服务器中。

因此您不能对其添加任何授权检查,您可以使用 Google 云存储并设置 acl,但同样这仅适用于 google 用户,您不能拥有自己的那里也有授权。

所以答案是,你必须将静态文件更改为资源文件,并添加到这些文件的路由而不是直接访问,然后在你的端点或控制器中你可以添加基于会话或访问令牌或任何的自定义授权其他身份选项,一旦用户授权访问这些文件,您就可以将这些文件作为响应。