gpt4 book ai didi

java - 将 Cloud Endpoints API Explorer 锁定到特定 Gmail 帐户

转载 作者:行者123 更新时间:2023-12-02 04:26:47 24 4
gpt4 key购买 nike

如何锁定 Cloud Endpoints 中的 API Explorer,使其仅适用于特定 Gmail 帐户(例如您的 console.developers.google.com 电子邮件地址)?

有人告诉我,我可以在 Cloud Endpoints 项目的 web.xml 文件中使用安全约束,如下所示:

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

但是在 Using Auth with Endpoints docs它说:

“您必须按照本页提供的说明指定端点身份验证。请注意,您无法按照 Security and Authentication 下提供的说明设置用户登录要求来配置 web.xml 文件,因为这将导致部署失败”

所以你不能这样做......

有人知道如何将 Oauth2 身份验证限制到 API Explorer 中的特定 Gmail 帐户吗?因为默认情况下,您可以使用任何 gmail 帐户登录,这将使您通过 Oauth2 身份验证,然后您可以通过 com.google.appengine.api.users.User 用户执行使用 Oauth2 的任何 API 方法他们的方法中的参数。

最佳答案

您应该能够检索用户的身份验证 token 并验证其客户端 ID 是否是 API Explorer 客户端 ID。客户端 ID 位于 com.google.api.server.spi.Constant.API_EXPLORER_CLIENT_ID 中。身份验证 token 将通过 Authorization header 或 access_tokenbearer_token 查询参数传递。通过向 API 方法添加 HttpServletRequest 参数,可以访问 header 或查询参数。

要验证 ID token ,您需要使用 Google 的 API 客户端库:

GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(
Client.getInstance().getHttpTransport(),
Client.getInstance().getJsonFactory()).build();
GoogleIdToken token = verifier.verify(stringToken);
String clientId = token.getPayload().getAuthorizedParty();

关于java - 将 Cloud Endpoints API Explorer 锁定到特定 Gmail 帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com