This is an automated email from the ASF dual-hosted git repository. vjasani pushed a commit to branch branch-2.3 in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.3 by this push: new 1620e6d HBASE-24190 : Make kerberos value of hbase.security.authentication property case insensitive (#1687) 1620e6d is described below commit 1620e6d958c4c425ed5903bc1e6a16222d58a870 Author: shahrs87 <shahr...@gmail.com> AuthorDate: Sun May 10 22:24:45 2020 -0700 HBASE-24190 : Make kerberos value of hbase.security.authentication property case insensitive (#1687) Signed-off-by: binlijin <binli...@gmail.com> Signed-off-by: Viraj Jasani <vjas...@apache.org> --- .../org/apache/hadoop/hbase/TestHBaseConfiguration.java | 15 +++++++++++++++ .../java/org/apache/hadoop/hbase/http/InfoServer.java | 2 +- .../java/org/apache/hadoop/hbase/mapreduce/SyncTable.java | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java index 184cdf6..6a0b428 100644 --- a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java +++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestHBaseConfiguration.java @@ -27,9 +27,11 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.List; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.security.User; import org.apache.hadoop.hbase.testclassification.MiscTests; import org.apache.hadoop.hbase.testclassification.SmallTests; import org.junit.AfterClass; +import org.junit.Assert; import org.junit.ClassRule; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -101,6 +103,19 @@ public class TestHBaseConfiguration { } } + @Test + public void testSecurityConfCaseInsensitive() { + Configuration conf = HBaseConfiguration.create(); + conf.set("hbase.security.authentication", "kerberos"); + Assert.assertTrue(User.isHBaseSecurityEnabled(conf)); + + conf.set("hbase.security.authentication", "KERBEROS"); + Assert.assertTrue(User.isHBaseSecurityEnabled(conf)); + + conf.set("hbase.security.authentication", "KERBeros"); + Assert.assertTrue(User.isHBaseSecurityEnabled(conf)); + } + private static class ReflectiveCredentialProviderClient { public static final String HADOOP_CRED_PROVIDER_FACTORY_CLASS_NAME = "org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory"; diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/InfoServer.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/InfoServer.java index 6ee37cb..6a1ffbc 100644 --- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/InfoServer.java +++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/InfoServer.java @@ -173,7 +173,7 @@ public class InfoServer { return false; } String remoteUser = req.getRemoteUser(); - if ("kerberos".equals(conf.get(HttpServer.HTTP_UI_AUTHENTICATION)) && + if ("kerberos".equalsIgnoreCase(conf.get(HttpServer.HTTP_UI_AUTHENTICATION)) && conf.getBoolean(CommonConfigurationKeys.HADOOP_SECURITY_AUTHORIZATION, false) && remoteUser != null) { return HttpServer.userHasAdministratorAccess(ctx, remoteUser); diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java index e092f90..cf9241d 100644 --- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java +++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java @@ -91,7 +91,7 @@ public class SyncTable extends Configured implements Tool { private void initCredentialsForHBase(String zookeeper, Job job) throws IOException { Configuration peerConf = HBaseConfiguration.createClusterConf(job .getConfiguration(), zookeeper); - if(peerConf.get("hbase.security.authentication").equals("kerberos")){ + if("kerberos".equalsIgnoreCase(peerConf.get("hbase.security.authentication"))){ TableMapReduceUtil.initCredentialsForCluster(job, peerConf); } } @@ -105,7 +105,7 @@ public class SyncTable extends Configured implements Tool { Job job = Job.getInstance(getConf(),getConf().get("mapreduce.job.name", "syncTable_" + sourceTableName + "-" + targetTableName)); Configuration jobConf = job.getConfiguration(); - if (jobConf.get("hadoop.security.authentication").equals("kerberos")) { + if ("kerberos".equalsIgnoreCase(jobConf.get("hadoop.security.authentication"))) { TokenCache.obtainTokensForNamenodes(job.getCredentials(), new Path[] { sourceHashDir }, getConf()); }