【发布时间】:2019-05-18 13:08:43
【问题描述】:
我在 Google App Engine 标准上部署了一个 java8 网络应用程序。目前我有 Oauth2 集成,我能够获取用户的电子邮件地址、token_id 等。用户注册流程非常标准(即使使用 Oauth2)。它基本上是让用户添加他们的电子邮件/密码或使用谷歌登录进行注册。 我在 Google Cloud Storage 中有目录和文件,我想允许“经过身份验证的”用户访问。 这意味着:
- a) 如果他们的用户名/密码与我在 mysql 数据库中的匹配 或
- b) 如果我在数据库中找到他们的 google 登录凭据
我将它们重定向到 servlet,该 servlet 以链接的形式在安全网页中显示所有文件,用户可以在其中单击/打开文档。 我很清楚如何请求对用户可能拥有的 Google 资源的授权。我需要知道的是如何“授予”用户(Google 用户或在网站上注册的普通用户)访问 Google Cloud Storage 存储桶中文件的权限?
除非我将存储对象读取器授予“所有用户”,否则我会得到:
<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
Anonymous caller does not have storage.objects.get access to drmath.appspot.com/1a/index.html.
</Details>
</Error>
【问题讨论】:
标签: java google-app-engine google-cloud-platform google-signin