This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch 23166
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 64ff8b3fa48abcb408ff9bcf6d58ce51ef8d2819
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Mar 10 14:57:17 2026 +0100

    CAMEL-23166 - Generalize Google services authentication with common module 
- Google Firestore
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 components/camel-google/camel-google-firestore/pom.xml    |  4 ++++
 .../google/firestore/GoogleFirestoreConfiguration.java    |  4 +++-
 .../firestore/GoogleFirestoreConnectionFactory.java       | 15 +++++----------
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/components/camel-google/camel-google-firestore/pom.xml 
b/components/camel-google/camel-google-firestore/pom.xml
index a5ccb15b7fa8..bd5c70d93767 100644
--- a/components/camel-google/camel-google-firestore/pom.xml
+++ b/components/camel-google/camel-google-firestore/pom.xml
@@ -45,6 +45,10 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-health</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-google-common</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.google.cloud</groupId>
             <artifactId>google-cloud-firestore</artifactId>
diff --git 
a/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConfiguration.java
 
b/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConfiguration.java
index be741b9dab32..0b4fcbb99ab2 100644
--- 
a/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConfiguration.java
+++ 
b/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.google.firestore;
 
 import com.google.cloud.firestore.Firestore;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.component.google.common.GoogleCommonConfiguration;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
@@ -27,7 +28,7 @@ import org.apache.camel.spi.UriPath;
  * Configuration for the Google Firestore component.
  */
 @UriParams
-public class GoogleFirestoreConfiguration implements Cloneable {
+public class GoogleFirestoreConfiguration implements Cloneable, 
GoogleCommonConfiguration {
 
     @UriPath(label = "common", description = "The collection name to use")
     @Metadata(required = true)
@@ -94,6 +95,7 @@ public class GoogleFirestoreConfiguration implements 
Cloneable {
         this.databaseId = databaseId;
     }
 
+    @Override
     public String getServiceAccountKey() {
         return serviceAccountKey;
     }
diff --git 
a/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConnectionFactory.java
 
b/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConnectionFactory.java
index 73874d23fd71..45b6f06f2420 100644
--- 
a/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConnectionFactory.java
+++ 
b/components/camel-google/camel-google-firestore/src/main/java/org/apache/camel/component/google/firestore/GoogleFirestoreConnectionFactory.java
@@ -16,15 +16,12 @@
  */
 package org.apache.camel.component.google.firestore;
 
-import java.io.InputStream;
-
 import com.google.api.client.util.Strings;
-import com.google.auth.oauth2.GoogleCredentials;
-import com.google.auth.oauth2.ServiceAccountCredentials;
+import com.google.auth.Credentials;
 import com.google.cloud.firestore.Firestore;
 import com.google.cloud.firestore.FirestoreOptions;
 import org.apache.camel.CamelContext;
-import org.apache.camel.support.ResourceHelper;
+import org.apache.camel.component.google.common.GoogleCredentialsHelper;
 
 /**
  * Factory for creating Google Firestore client connections.
@@ -48,11 +45,9 @@ public final class GoogleFirestoreConnectionFactory {
     public static Firestore create(CamelContext context, 
GoogleFirestoreConfiguration configuration) throws Exception {
         FirestoreOptions.Builder builder = FirestoreOptions.newBuilder();
 
-        // Set credentials if service account key is provided
-        if (!Strings.isNullOrEmpty(configuration.getServiceAccountKey())) {
-            InputStream credentialsStream = 
ResourceHelper.resolveMandatoryResourceAsInputStream(
-                    context, configuration.getServiceAccountKey());
-            GoogleCredentials credentials = 
ServiceAccountCredentials.fromStream(credentialsStream);
+        // Use GoogleCredentialsHelper for credential resolution (service 
account key or ADC fallback)
+        Credentials credentials = 
GoogleCredentialsHelper.getCredentials(context, configuration);
+        if (credentials != null) {
             builder.setCredentials(credentials);
         }
 

Reply via email to