You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2014/12/18 22:32:13 UTC

[05/50] incubator-slider git commit: SLIDER-633 enable secured oozie workflows with slider

SLIDER-633 enable secured oozie workflows with slider


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

Branch: refs/heads/feature/SLIDER-151_REST_API
Commit: 80abe081d6161cfa03272634c08d73052447c032
Parents: fd0e7d3
Author: Jon Maron <jm...@hortonworks.com>
Authored: Tue Dec 2 11:41:15 2014 -0500
Committer: Jon Maron <jm...@hortonworks.com>
Committed: Tue Dec 2 11:41:15 2014 -0500

----------------------------------------------------------------------
 .../slider/core/launch/AbstractLauncher.java    | 14 +++++++++++++-
 .../slider/core/launch/AppMasterLauncher.java   | 20 +++++++++++++++-----
 2 files changed, 28 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/80abe081/slider-core/src/main/java/org/apache/slider/core/launch/AbstractLauncher.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/core/launch/AbstractLauncher.java b/slider-core/src/main/java/org/apache/slider/core/launch/AbstractLauncher.java
index 94f8f24..f1f5704 100644
--- a/slider-core/src/main/java/org/apache/slider/core/launch/AbstractLauncher.java
+++ b/slider-core/src/main/java/org/apache/slider/core/launch/AbstractLauncher.java
@@ -42,6 +42,7 @@ import org.apache.slider.core.conf.MapOperations;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
@@ -210,7 +211,18 @@ public abstract class AbstractLauncher extends Configured {
     //tokens
     log.debug("{} tokens", credentials.numberOfTokens());
     DataOutputBuffer dob = new DataOutputBuffer();
-    credentials.writeTokenStorageToStream(dob);
+    String tokenFileName =
+        this.getConf().get("mapreduce.job.credentials.binary");
+    if (tokenFileName != null) {
+      // use delegation tokens, i.e. from Oozie
+      Credentials creds =
+          Credentials.readTokenStorageFile(new File(tokenFileName), getConf());
+      creds.writeTokenStorageToStream(dob);
+    } else {
+      // normal auth
+      credentials.writeTokenStorageToStream(dob);
+    }
+
     ByteBuffer tokenBuffer = ByteBuffer.wrap(dob.getData(), 0, dob.getLength());
     containerLaunchContext.setTokens(tokenBuffer);
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/80abe081/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 c5526ed..63c2abe 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
@@ -221,10 +221,14 @@ public class AppMasterLauncher extends AbstractLauncher {
       );
     }
 
-    // For now, only getting tokens for the default file-system.
-    FileSystem fs = coreFileSystem.getFileSystem();
-    Token<? extends TokenIdentifier>[] tokens = fs.addDelegationTokens(tokenRenewer,
-                                                             credentials);
+    Token<? extends TokenIdentifier>[] tokens = null;
+    boolean tokensProvided =
+        this.getConf().get("mapreduce.job.credentials.binary") != null;
+    if (!tokensProvided) {
+        // For now, only getting tokens for the default file-system.
+        FileSystem fs = coreFileSystem.getFileSystem();
+        tokens = fs.addDelegationTokens(tokenRenewer, credentials);
+    }
     // obtain the token expiry from the first token - should be the same for all
     // HDFS tokens
     if (tokens != null && tokens.length > 0) {
@@ -234,7 +238,13 @@ public class AppMasterLauncher extends AbstractLauncher {
       log.info("HDFS delegation tokens for AM launch context require renewal by {}",
                DateFormat.getDateTimeInstance().format(d));
     } else {
-      log.warn("No HDFS delegation tokens obtained for AM launch context");
+      if (!tokensProvided) {
+        log.warn("No HDFS delegation tokens obtained for AM launch context");
+      } else {
+        log.info("Tokens provided via mapreduce.job.credentials.binary property "
+                 + "being leveraged for AM launch");
+      }
+
     }
 
    }