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

psomogyi pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new ac5ac1d  HBASE-23347 Allow custom authentication methods for RPCs; 
addendum (#1060)
ac5ac1d is described below

commit ac5ac1dcb30d373384c877faa6ea9832bd38baf0
Author: Peter Somogyi <[email protected]>
AuthorDate: Tue Jan 21 18:47:13 2020 +0100

    HBASE-23347 Allow custom authentication methods for RPCs; addendum (#1060)
    
    Signed-off-by: Viraj Jasani <[email protected]>
---
 .../security/provider/SaslClientAuthenticationProviders.java  | 11 +++++++----
 .../provider/TestSaslClientAuthenticationProviders.java       |  8 ++++++++
 .../security/provider/SaslServerAuthenticationProviders.java  |  6 ++++--
 3 files changed, 19 insertions(+), 6 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.java
index 56c36e8..aaaee00 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.java
@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.hbase.security.provider;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -111,13 +112,14 @@ public final class SaslClientAuthenticationProviders {
     Class<? extends AuthenticationProviderSelector> clz = conf.getClass(
         SELECTOR_KEY, BuiltInProviderSelector.class, 
AuthenticationProviderSelector.class);
     try {
-      AuthenticationProviderSelector selector = clz.newInstance();
+      AuthenticationProviderSelector selector = 
clz.getConstructor().newInstance();
       selector.configure(conf, providers);
       if (LOG.isTraceEnabled()) {
         LOG.trace("Loaded ProviderSelector {}", selector.getClass());
       }
       return selector;
-    } catch (InstantiationException | IllegalAccessException e) {
+    } catch (InstantiationException | IllegalAccessException | 
NoSuchMethodException |
+        InvocationTargetException e) {
       throw new RuntimeException("Failed to instantiate " + clz +
           " as the ProviderSelector defined by " + SELECTOR_KEY, e);
     }
@@ -148,8 +150,9 @@ public final class SaslClientAuthenticationProviders {
       // Instantiate it
       SaslClientAuthenticationProvider provider;
       try {
-        provider = (SaslClientAuthenticationProvider) clz.newInstance();
-      } catch (InstantiationException | IllegalAccessException e) {
+        provider = (SaslClientAuthenticationProvider) 
clz.getConstructor().newInstance();
+      } catch (InstantiationException | IllegalAccessException | 
NoSuchMethodException
+          | InvocationTargetException e) {
         LOG.warn("Failed to instantiate SaslClientAuthenticationProvider {}", 
clz, e);
         continue;
       }
diff --git 
a/hbase-client/src/test/java/org/apache/hadoop/hbase/security/provider/TestSaslClientAuthenticationProviders.java
 
b/hbase-client/src/test/java/org/apache/hadoop/hbase/security/provider/TestSaslClientAuthenticationProviders.java
index c131702..2b39959 100644
--- 
a/hbase-client/src/test/java/org/apache/hadoop/hbase/security/provider/TestSaslClientAuthenticationProviders.java
+++ 
b/hbase-client/src/test/java/org/apache/hadoop/hbase/security/provider/TestSaslClientAuthenticationProviders.java
@@ -96,6 +96,10 @@ public class TestSaslClientAuthenticationProviders {
   static class ConflictingProvider1 implements 
SaslClientAuthenticationProvider {
     static final SaslAuthMethod METHOD1 = new SaslAuthMethod(
         "FOO", (byte)12, "DIGEST-MD5", AuthenticationMethod.SIMPLE);
+
+    public ConflictingProvider1() {
+    }
+
     @Override public SaslAuthMethod getSaslAuthMethod() {
       return METHOD1;
     }
@@ -118,6 +122,10 @@ public class TestSaslClientAuthenticationProviders {
   static class ConflictingProvider2 implements 
SaslClientAuthenticationProvider {
     static final SaslAuthMethod METHOD2 = new SaslAuthMethod(
         "BAR", (byte)12, "DIGEST-MD5", AuthenticationMethod.SIMPLE);
+
+    public ConflictingProvider2() {
+    }
+
     @Override public SaslAuthMethod getSaslAuthMethod() {
       return METHOD2;
     }
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/provider/SaslServerAuthenticationProviders.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/provider/SaslServerAuthenticationProviders.java
index d1c22b7..829498d 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/provider/SaslServerAuthenticationProviders.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/provider/SaslServerAuthenticationProviders.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hbase.security.provider;
 
 import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.Optional;
 import java.util.ServiceLoader;
@@ -120,9 +121,10 @@ public final class SaslServerAuthenticationProviders {
 
       try {
         SaslServerAuthenticationProvider provider =
-            (SaslServerAuthenticationProvider) clz.newInstance();
+            (SaslServerAuthenticationProvider) 
clz.getConstructor().newInstance();
         addProviderIfNotExists(provider, providers);
-      } catch (InstantiationException | IllegalAccessException e) {
+      } catch (InstantiationException | IllegalAccessException | 
NoSuchMethodException
+          | InvocationTargetException e) {
         LOG.warn("Failed to instantiate {}", clz, e);
       }
     }

Reply via email to