Repository: incubator-slider Updated Branches: refs/heads/develop fd0e7d36a -> 80abe081d
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/develop Commit: 80abe081d6161cfa03272634c08d73052447c032 Parents: fd0e7d3 Author: Jon Maron <[email protected]> Authored: Tue Dec 2 11:41:15 2014 -0500 Committer: Jon Maron <[email protected]> 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"); + } + } }
