【问题标题】:Passing in Google Service Account Details Inline with Java使用 Java 内联传递 Google 服务帐户详细信息
【发布时间】:2019-02-09 19:31:35
【问题描述】:

我目前正在使用适用于 Java 的 Google Cloud Client Library 来授权 Google API。

我目前正在做如下授权:

GoogleCredentials googleCredentials = GoogleCredentials.fromStream(new FileInputStream(JSON_FILE))
      .createScoped(Lists.newArrayList("https://www.googleapis.com/auth/cloud-platform"));

有没有办法在 Java 中内联 JSON_FILE 中的详细信息?这样我就不需要直接访问实际的 JSON 文件了?

我注意到您可以通过 Node.js SDK(此处显示:https://firebase.google.com/docs/admin/setup)执行此操作,但我似乎无法找到使用 java 的示例。谢谢!

【问题讨论】:

    标签: java google-api google-cloud-platform service-accounts


    【解决方案1】:

    您可能会发现以下doc 很有用。

    【讨论】:

      【解决方案2】:

      根据Google Developers Guide 提供的文档,您必须将 json 文件作为参数传递才能访问应用程序数据,如果您查看GoogleCredentials class(你可以注意到Json文件是必需的)

      【讨论】:

        【解决方案3】:

        我能想到几种方法。

        1. 将您的 Json 凭据放入字符串中。调用 fromStream(myStream) 处理来自 json 字符串的字符串或内存流。
        2. 绕过 GoogleCredentials 类并创建您自己的 Signed JWT 并将访问令牌传递给 create(accessToken)

        GoogleCredentials.java

        注意。我不建议您将服务帐户凭据存储在源代码中。从安全角度来看,不建议这样做。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-04
          • 2020-08-03
          • 1970-01-01
          • 2013-04-23
          • 1970-01-01
          • 1970-01-01
          • 2023-02-22
          • 1970-01-01
          相关资源
          最近更新 更多