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

xiangfu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 5b4e19aa4e fix: Pulsar OAuth2 Authentication Factory (#12195)
5b4e19aa4e is described below

commit 5b4e19aa4e3073ce9030d2283fb80bbaf177df21
Author: Jeffrey Bolle <[email protected]>
AuthorDate: Mon Jan 1 14:11:15 2024 -0500

    fix: Pulsar OAuth2 Authentication Factory (#12195)
    
    * do appropriate string check on config params.
    
    * test authentication factory creation with valid config.
    
    * Fixed line spacing, added testing visibility annotation.
---
 .../java/org/apache/pinot/plugin/stream/pulsar/PulsarConfig.java    | 4 +++-
 .../plugin/stream/pulsar/PulsarPartitionLevelConnectionHandler.java | 6 +++---
 .../org/apache/pinot/plugin/stream/pulsar/PulsarConfigTest.java     | 4 ++++
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git 
a/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfig.java
 
b/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfig.java
index 8cdc8f8647..637899d649 100644
--- 
a/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfig.java
+++ 
b/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfig.java
@@ -18,6 +18,7 @@
  */
 package org.apache.pinot.plugin.stream.pulsar;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import java.io.File;
 import java.net.MalformedURLException;
@@ -105,7 +106,8 @@ public class PulsarConfig {
     _audience = getConfigValue(streamConfigMap, OAUTH_AUDIENCE);
   }
 
-  protected void validateOAuthCredFile() {
+  @VisibleForTesting
+  private void validateOAuthCredFile() {
     try {
       URL credFilePathUrl = new URL(_credentialsFilePath);
       if (!"file".equals(credFilePathUrl.getProtocol())) {
diff --git 
a/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarPartitionLevelConnectionHandler.java
 
b/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarPartitionLevelConnectionHandler.java
index 163400bc3b..53b27eb963 100644
--- 
a/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarPartitionLevelConnectionHandler.java
+++ 
b/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarPartitionLevelConnectionHandler.java
@@ -73,10 +73,10 @@ public class PulsarPartitionLevelConnectionHandler {
     }
   }
 
-  private Optional<Authentication> getAuthenticationFactory(PulsarConfig 
pulsarConfig) {
+  protected Optional<Authentication> getAuthenticationFactory(PulsarConfig 
pulsarConfig) {
     if (StringUtils.isNotBlank(pulsarConfig.getIssuerUrl())
-        && StringUtils.isBlank(pulsarConfig.getAudience())
-        && StringUtils.isBlank(pulsarConfig.getCredentialsFilePath())) {
+        && StringUtils.isNotBlank(pulsarConfig.getAudience())
+        && StringUtils.isNotBlank(pulsarConfig.getCredentialsFilePath())) {
       try {
         return Optional.of(AuthenticationFactoryOAuth2.clientCredentials(
             new URL(pulsarConfig.getIssuerUrl()),
diff --git 
a/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/test/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfigTest.java
 
b/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/test/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfigTest.java
index 3c7eeffe80..486944b703 100644
--- 
a/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/test/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfigTest.java
+++ 
b/pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/test/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfigTest.java
@@ -31,6 +31,7 @@ import org.apache.pinot.spi.stream.StreamConfigProperties;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import static org.junit.Assert.assertTrue;
 
 public class PulsarConfigTest {
   public static final String TABLE_NAME_WITH_TYPE = "tableName_REALTIME";
@@ -137,6 +138,9 @@ public class PulsarConfigTest {
       Assert.assertEquals(pulsarConfig.getCredentialsFilePath(),
           "file://" + testFile.toFile().getAbsolutePath());
       Assert.assertEquals(pulsarConfig.getAudience(), "urn:test:test");
+      PulsarPartitionLevelConnectionHandler 
pulsarPartitionLevelConnectionHandler =
+          new PulsarPartitionLevelConnectionHandler("testId", streamConfig);
+      
assertTrue(pulsarPartitionLevelConnectionHandler.getAuthenticationFactory(pulsarConfig).isPresent());
     } catch (Exception e) {
       Assert.fail("Should not throw exception", e);
     } finally {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to