【问题标题】:Authenticating Google DLP API from Java without setting GOOGLE_APPLICATION_CREDENTIALS?在不设置 GOOGLE_APPLICATION_CREDENTIALS 的情况下从 Java 验证 Google DLP API?
【发布时间】:2018-02-13 01:30:57
【问题描述】:

我正在使用 Google Cloud DLP Java 库。我已经按照此处的说明设置了我的服务凭据并将它们保存在 JSON 文件中:

https://cloud.google.com/dlp/docs/libraries

文档指出,首选的身份验证方法是将环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为指向包含凭据的 JSON 文件的路径。在我的情况下,这并不是那么实用。我有一个 Spring Boot 应用程序,其中所有代码(以及带有凭据的 JSON 文件)都嵌入在“胖 jar”中。我可以轻松地使用类加载器来获取资源的 InputStream,但我不能真正从环境变量的 jar 文件中指向它。从正在运行的 JVM 中创建环境变量而不求助于使用反射等技巧也是不切实际的。

其他一些 Google Cloud 库具有可以使用 GoogleCredentials 对象初始化的服务类,但我还没有找到使用 DLP 库执行此操作的方法。有没有办法将GoogleCredentials 传递给DlpServiceClient

【问题讨论】:

    标签: google-api google-cloud-platform google-cloud-dlp


    【解决方案1】:

    经过一番谷歌搜索后,我最终弄明白了。这很好用:

    Resource r = new ClassPathResource("/path-to-my-cred-file.json");
    
    GoogleCredentials creds = GoogleCredentials.fromStream(r.getInputStream());    
    
    DlpServiceSettings settings = DlpServiceSettings.newBuilder()
                                        .setCredentialsProvider(FixedCredentialsProvider
                                        .create(creds))
                                        .build();
    
    try (DlpServiceClient dlpServiceClient = DlpServiceClient.create(settings)) {
          ///... other stuff here ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-15
      • 2023-03-19
      • 2020-12-09
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多