SLIDER-416 substitute hostname for _HOST in principals

Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/e24060b9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/e24060b9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/e24060b9

Branch: refs/heads/feature/SLIDER-149_Support_a_YARN_service_registry
Commit: e24060b93751f9a73592be0ca628d3a403d044a3
Parents: ce0c052
Author: Billie Rinaldi <billie.rina...@gmail.com>
Authored: Tue Sep 9 20:17:30 2014 -0700
Committer: Billie Rinaldi <billie.rina...@gmail.com>
Committed: Tue Sep 9 20:17:30 2014 -0700

----------------------------------------------------------------------
 .../java/org/apache/slider/core/launch/AppMasterLauncher.java  | 6 +++++-
 .../server/services/security/FsDelegationTokenManager.java     | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/e24060b9/slider-core/src/main/java/org/apache/slider/core/launch/AppMasterLauncher.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/core/launch/AppMasterLauncher.java
 
b/slider-core/src/main/java/org/apache/slider/core/launch/AppMasterLauncher.java
index bd8a0a5..c9ac20c 100644
--- 
a/slider-core/src/main/java/org/apache/slider/core/launch/AppMasterLauncher.java
+++ 
b/slider-core/src/main/java/org/apache/slider/core/launch/AppMasterLauncher.java
@@ -20,6 +20,7 @@ package org.apache.slider.core.launch;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.security.SecurityUtil;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
 import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
 import org.apache.hadoop.yarn.api.records.Priority;
@@ -35,6 +36,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.net.InetAddress;
 import java.util.Map;
 import java.util.Set;
 
@@ -196,7 +198,9 @@ public class AppMasterLauncher extends AbstractLauncher {
    */
   private void addSecurityTokens() throws IOException {
 
-    String tokenRenewer = getConf().get(YarnConfiguration.RM_PRINCIPAL);
+    String tokenRenewer = SecurityUtil.getServerPrincipal(
+        getConf().get(YarnConfiguration.RM_PRINCIPAL),
+        InetAddress.getLocalHost().getCanonicalHostName());
     if (SliderUtils.isUnset(tokenRenewer)) {
       throw new IOException(
         "Can't get Master Kerberos principal for the RM to use as renewer: "

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/e24060b9/slider-core/src/main/java/org/apache/slider/server/services/security/FsDelegationTokenManager.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/services/security/FsDelegationTokenManager.java
 
b/slider-core/src/main/java/org/apache/slider/server/services/security/FsDelegationTokenManager.java
index cce2de0..c892b10 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/services/security/FsDelegationTokenManager.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/services/security/FsDelegationTokenManager.java
@@ -20,6 +20,7 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
 import org.apache.hadoop.io.Text;
+import org.apache.hadoop.security.SecurityUtil;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.security.token.Token;
 import org.apache.hadoop.security.token.TokenIdentifier;
@@ -35,6 +36,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.net.InetAddress;
 import java.security.PrivilegedExceptionAction;
 import java.text.DateFormat;
 import java.util.Date;
@@ -67,7 +69,9 @@ public class FsDelegationTokenManager {
     // using HDFS principal...
     this.remoteUser = UserGroupInformation
         .loginUserFromKeytabAndReturnUGI(
-            loginConfig.get(DFSConfigKeys.DFS_NAMENODE_USER_NAME_KEY),
+            SecurityUtil.getServerPrincipal(
+                
loginConfig.get(DFSConfigKeys.DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY),
+                InetAddress.getLocalHost().getCanonicalHostName()),
             loginConfig.get(DFSConfigKeys.DFS_NAMENODE_KEYTAB_FILE_KEY));
     log.info("Created remote user {}.  UGI reports current user is {}",
              this.remoteUser, UserGroupInformation.getCurrentUser());

Reply via email to