From 269e62c6b8031d48e7f2e282b09b5ffcfadae547 Mon Sep 17 00:00:00 2001 From: BenWhitehead Date: Tue, 11 Aug 2020 16:19:55 -0400 Subject: [PATCH] fix: refactor FakeCredentials (#325) This change allows users who want to try to manually configured FirestoreOptions for an emulator to be able to leverage the credentials we use when boostrapping via environment variable. * Rename FakeCredentials to EmulatorCredentials * Make EmulatorCredentials static * Move from inner class of FirestoreOptions.Builder to inner class of FirestoreOptions Related to #190 --- .../clirr-ignored-differences.xml | 10 ++++ .../cloud/firestore/FirestoreOptions.java | 46 +++++++++---------- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/google-cloud-firestore/clirr-ignored-differences.xml b/google-cloud-firestore/clirr-ignored-differences.xml index f8d2661ea..565a807b6 100644 --- a/google-cloud-firestore/clirr-ignored-differences.xml +++ b/google-cloud-firestore/clirr-ignored-differences.xml @@ -162,4 +162,14 @@ com.google.cloud.firestore.CollectionGroup + + + 8001 + com/google/cloud/firestore/FirestoreOptions$Builder$FakeCredentials + * + + diff --git a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/FirestoreOptions.java b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/FirestoreOptions.java index c4f076c67..c8ad757b9 100644 --- a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/FirestoreOptions.java +++ b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/FirestoreOptions.java @@ -226,39 +226,39 @@ public ManagedChannelBuilder apply(ManagedChannelBuilder input) { .build()); // Use a `CredentialProvider` to match the Firebase Admin SDK, which prevents the Admin SDK // from overwriting the Emulator credentials. - this.setCredentialsProvider(FixedCredentialsProvider.create(new FakeCredentials())); + this.setCredentialsProvider(FixedCredentialsProvider.create(new EmulatorCredentials())); } return new FirestoreOptions(this); } + } - public class FakeCredentials extends Credentials { - private final Map> HEADERS = - ImmutableMap.of("Authorization", Arrays.asList("Bearer owner")); - - @Override - public String getAuthenticationType() { - throw new IllegalArgumentException("Not supported"); - } + public static class EmulatorCredentials extends Credentials { + private final Map> HEADERS = + ImmutableMap.of("Authorization", Arrays.asList("Bearer owner")); - @Override - public Map> getRequestMetadata(URI uri) { - return HEADERS; - } + @Override + public String getAuthenticationType() { + throw new IllegalArgumentException("Not supported"); + } - @Override - public boolean hasRequestMetadata() { - return true; - } + @Override + public Map> getRequestMetadata(URI uri) { + return HEADERS; + } - @Override - public boolean hasRequestMetadataOnly() { - return true; - } + @Override + public boolean hasRequestMetadata() { + return true; + } - @Override - public void refresh() {} + @Override + public boolean hasRequestMetadataOnly() { + return true; } + + @Override + public void refresh() {} } @InternalApi("This class should only be extended within google-cloud-java")