Repository: incubator-gobblin Updated Branches: refs/heads/master 1be745524 -> 8c338be3d
[GOBBLIN-337] Hive config token signature Closes #2192 from autumnust/hiveConfigTokenSignature Project: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/commit/8c338be3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/tree/8c338be3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/diff/8c338be3 Branch: refs/heads/master Commit: 8c338be3d8bd05f114c960a944dbfad17665060c Parents: 1be7455 Author: Lei Sun <[email protected]> Authored: Thu Dec 7 16:35:38 2017 -0800 Committer: Hung Tran <[email protected]> Committed: Thu Dec 7 16:35:38 2017 -0800 ---------------------------------------------------------------------- .../java/org/apache/gobblin/util/hadoop/TokenUtils.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/8c338be3/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java ---------------------------------------------------------------------- diff --git a/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java b/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java index fb45e14..8c70a13 100644 --- a/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java +++ b/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java @@ -52,7 +52,6 @@ import org.apache.hadoop.security.Credentials; 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; import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider; import org.apache.hadoop.yarn.ipc.YarnRPC; import org.apache.hadoop.yarn.util.ConverterUtils; @@ -125,7 +124,7 @@ public class TokenUtils { // Will add hive tokens into ugi in this method. getHiveToken(state, client, cred, targetUser, ugi); - if (tokenFile.isPresent()){ + if (tokenFile.isPresent()) { persistTokens(cred, tokenFile.get()); } // at this point, tokens in ugi can be more than that in Credential object, @@ -191,11 +190,12 @@ public class TokenUtils { public static void getHiveToken(final State state, IMetaStoreClient hiveClient, Credentials cred, final String userToProxy, UserGroupInformation ugi) { try { - // Fetch and save the default hcat token. - LOG.info("Fetching default Hive MetaStore token from hive"); + // Fetch the delegation token with "service" field overwritten with the metastore.uri configuration. + // org.apache.gobblin.hive.HiveMetaStoreClientFactory.getHiveConf(com.google.common.base.Optional<java.lang.String>) + // sets the signature field to the same value to retrieve the token correctly. HiveConf hiveConf = new HiveConf(); - - Token<DelegationTokenIdentifier> hcatToken = fetchHcatToken(userToProxy, hiveConf, null, hiveClient); + Token<DelegationTokenIdentifier> hcatToken = + fetchHcatToken(userToProxy, hiveConf, hiveConf.get(HiveConf.ConfVars.METASTOREURIS.varname), hiveClient); cred.addToken(hcatToken.getService(), hcatToken); ugi.addToken(hcatToken);
