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

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

commit 47b66475baa9391dd8cda948d787d02165466ec4
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Feb 26 09:41:34 2026 +0100

    CAMEL-23042 - Generalize Google services authentication with common module 
- Google Pubsub
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 components/camel-google/camel-google-pubsub/pom.xml |  4 ++++
 .../google/pubsub/GooglePubsubComponent.java        | 21 +++++++--------------
 .../google/pubsub/GooglePubsubEndpoint.java         |  6 +++++-
 3 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/components/camel-google/camel-google-pubsub/pom.xml 
b/components/camel-google/camel-google-pubsub/pom.xml
index 179c1110ee78..faed915579e0 100644
--- a/components/camel-google/camel-google-pubsub/pom.xml
+++ b/components/camel-google/camel-google-pubsub/pom.xml
@@ -48,6 +48,10 @@
     </properties>
 
     <dependencies>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-google-common</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-support</artifactId>
diff --git 
a/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java
 
b/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java
index fd2fe9c00dff..55b04aefb329 100644
--- 
a/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java
+++ 
b/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java
@@ -32,8 +32,7 @@ import com.google.api.gax.grpc.GrpcTransportChannel;
 import com.google.api.gax.rpc.FixedTransportChannelProvider;
 import com.google.api.gax.rpc.StatusCode;
 import com.google.api.gax.rpc.TransportChannelProvider;
-import com.google.auth.oauth2.GoogleCredentials;
-import com.google.auth.oauth2.ServiceAccountCredentials;
+import com.google.auth.Credentials;
 import com.google.cloud.pubsub.v1.MessageReceiver;
 import com.google.cloud.pubsub.v1.Publisher;
 import com.google.cloud.pubsub.v1.Subscriber;
@@ -47,11 +46,10 @@ import io.grpc.ManagedChannel;
 import io.grpc.ManagedChannelBuilder;
 import org.apache.camel.Endpoint;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.component.google.common.GoogleCredentialsHelper;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.support.HeaderFilterStrategyComponent;
-import org.apache.camel.support.ResourceHelper;
-import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -216,18 +214,13 @@ public class GooglePubsubComponent extends 
HeaderFilterStrategyComponent {
     }
 
     private CredentialsProvider getCredentialsProvider(GooglePubsubEndpoint 
endpoint) throws IOException {
-        CredentialsProvider credentialsProvider;
-
-        if (endpoint.isAuthenticate()) {
-            credentialsProvider = 
FixedCredentialsProvider.create(ObjectHelper.isEmpty(endpoint.getServiceAccountKey())
-                    ? GoogleCredentials.getApplicationDefault() : 
ServiceAccountCredentials.fromStream(ResourceHelper
-                            
.resolveMandatoryResourceAsInputStream(getCamelContext(), 
endpoint.getServiceAccountKey()))
-                            
.createScoped(PublisherStubSettings.getDefaultServiceScopes()));
-        } else {
-            credentialsProvider = NoCredentialsProvider.create();
+        if (!endpoint.isAuthenticate()) {
+            return NoCredentialsProvider.create();
         }
 
-        return credentialsProvider;
+        Credentials credentials = GoogleCredentialsHelper.getCredentials(
+                getCamelContext(), endpoint, 
PublisherStubSettings.getDefaultServiceScopes());
+        return FixedCredentialsProvider.create(credentials);
     }
 
     public String getEndpoint() {
diff --git 
a/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubEndpoint.java
 
b/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubEndpoint.java
index 2fdec64f2e7c..ec876c0d3d39 100644
--- 
a/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubEndpoint.java
+++ 
b/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubEndpoint.java
@@ -26,6 +26,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.component.google.common.GoogleCommonConfiguration;
 import 
org.apache.camel.component.google.pubsub.serializer.DefaultGooglePubsubSerializer;
 import 
org.apache.camel.component.google.pubsub.serializer.GooglePubsubSerializer;
 import org.apache.camel.spi.*;
@@ -42,7 +43,8 @@ import org.slf4j.LoggerFactory;
 @UriEndpoint(firstVersion = "2.19.0", scheme = "google-pubsub", title = 
"Google Pubsub",
              syntax = "google-pubsub:projectId:destinationName", category = { 
Category.CLOUD, Category.MESSAGING },
              headersClass = GooglePubsubConstants.class)
-public class GooglePubsubEndpoint extends DefaultEndpoint implements 
EndpointServiceLocation, HeaderFilterStrategyAware {
+public class GooglePubsubEndpoint extends DefaultEndpoint
+        implements EndpointServiceLocation, HeaderFilterStrategyAware, 
GoogleCommonConfiguration {
 
     private Logger log;
 
@@ -174,6 +176,7 @@ public class GooglePubsubEndpoint extends DefaultEndpoint 
implements EndpointSer
         this.loggerId = loggerId;
     }
 
+    @Override
     public boolean isAuthenticate() {
         return authenticate;
     }
@@ -182,6 +185,7 @@ public class GooglePubsubEndpoint extends DefaultEndpoint 
implements EndpointSer
         this.authenticate = authenticate;
     }
 
+    @Override
     public String getServiceAccountKey() {
         return serviceAccountKey;
     }

Reply via email to