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 184cdf639f1..6a0b4283ed0 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 6ee37cb95de..6a1ffbcb3f8 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 fff6620c555..bb200617477 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()); }