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