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; }
