Quellcode durchsuchen

HADOOP-8882. Uppercase namenode host name causes fsck to fail when useKsslAuth is on. Contributed by Arpit Gupta.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1@1399102 13f79535-47bb-0310-9956-ffa450edef68
Suresh Srinivas vor 12 Jahren
Ursprung
Commit
47fab48212
2 geänderte Dateien mit 6 neuen und 1 gelöschten Zeilen
  1. 3 0
      CHANGES.txt
  2. 3 1
      src/core/org/apache/hadoop/security/SecurityUtil.java

+ 3 - 0
CHANGES.txt

@@ -251,6 +251,9 @@ Release 1.2.0 - unreleased
     MAPREDUCE-4451. fairscheduler fail to init job with kerberos authentication 
     configured. (erik.fang via tucu)
 
+    HADOOP-8882. Uppercase namenode host name causes fsck to fail when 
+    useKsslAuth is on. (Arpit Gupta via suresh)
+
 Release 1.1.0 - unreleased
 
   INCOMPATIBLE CHANGES

+ 3 - 1
src/core/org/apache/hadoop/security/SecurityUtil.java

@@ -43,6 +43,7 @@ import org.apache.hadoop.io.Text;
 import org.apache.hadoop.net.NetUtils;
 import org.apache.hadoop.security.authentication.client.AuthenticatedURL;
 import org.apache.hadoop.security.authentication.client.AuthenticationException;
+import org.apache.hadoop.security.authentication.util.KerberosUtil;
 import org.apache.hadoop.security.authorize.AccessControlList;
 import org.apache.hadoop.security.token.Token;
 
@@ -136,7 +137,8 @@ public class SecurityUtil {
     if(!UserGroupInformation.isSecurityEnabled())
       return;
     
-    String serviceName = "host/" + remoteHost.getHost();
+    String serviceName = KerberosUtil.getServicePrincipal("host",
+        remoteHost.getHost());
     if (LOG.isDebugEnabled())
       LOG.debug("Fetching service ticket for host at: " + serviceName);
     Object serviceCred = null;