zhangbuzhang created HBASE-24190: ------------------------------------ Summary: Case-sensitive use of configuration parameter hbase.security.authentication Key: HBASE-24190 URL: https://issues.apache.org/jira/browse/HBASE-24190 Project: HBase Issue Type: Bug Components: conf Reporter: zhangbuzhang
In hbase-20586 (https://issues.apache.org/jira/browse/HBASE-20586) (commit_sha: [https://github.com/apache/hbase/commit/cd61bcc0] ) The code added ([SyncTable.java|https://github.com/apache/hbase/commit/cd61bcc0#diff-d1b79635f33483bf6226609e91fd1cc3]) for the use of *hbase.security.authentication* is case-sensitive. So users setting it to “KERBEROS” won’t take effect. private void initCredentialsForHBase(String zookeeper, Job job) throws IOException { Configuration peerConf = HBaseConfiguration.createClusterConf(job .getConfiguration(), zookeeper); if(peerConf.get("hbase.security.authentication").equals("kerberos")){ TableMapReduceUtil.initCredentialsForCluster(job, peerConf); } } However, in current code base, other uses of *hbase.security.authentication* are all case-insensitive. For example in *MasterFileSystem.java.* public MasterFileSystem(Configuration conf) throws IOException { ... this.isSecurityEnabled = "kerberos".equalsIgnoreCase(conf.get("hbase.security.authentication")); ... } Users may misconfigured the parameter because of the case-senstive problem. *How To Fix* Using *eqaulsIgnoreCase* API consistently in every place when using *hbase.security.authentication* or make it clear in Doc. (Current doc doesn't mention it clearly) -- This message was sent by Atlassian Jira (v8.3.4#803005)