diff --git a/shims/common-secure/src/main/java/org/apache/hadoop/hive/thrift/DBTokenStore.java b/shims/common-secure/src/main/java/org/apache/hadoop/hive/thrift/DBTokenStore.java index d86c5cb..0f56b8c 100644 --- a/shims/common-secure/src/main/java/org/apache/hadoop/hive/thrift/DBTokenStore.java +++ b/shims/common-secure/src/main/java/org/apache/hadoop/hive/thrift/DBTokenStore.java @@ -28,17 +28,25 @@ import org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge.Server.ServerMode; import org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager.DelegationTokenInformation; import org.apache.hadoop.security.token.delegation.HiveDelegationTokenSupport; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DBTokenStore implements DelegationTokenStore { - + private static final Logger LOG = LoggerFactory.getLogger(DBTokenStore.class); @Override public int addMasterKey(String s) throws TokenStoreException { + if (LOG.isTraceEnabled()) { + LOG.trace("addMasterKey: s = " + s); + } return (Integer)invokeOnRawStore("addMasterKey", new Object[]{s},String.class); } @Override public void updateMasterKey(int keySeq, String s) throws TokenStoreException { + if (LOG.isTraceEnabled()) { + LOG.trace("updateMasterKey: s = " + s + ", keySeq = " + keySeq); + } invokeOnRawStore("updateMasterKey", new Object[] {Integer.valueOf(keySeq), s}, Integer.class, String.class); } @@ -62,8 +70,12 @@ public boolean addToken(DelegationTokenIdentifier tokenIdentifier, String identifier = TokenStoreDelegationTokenSecretManager.encodeWritable(tokenIdentifier); String tokenStr = Base64.encodeBase64URLSafeString( HiveDelegationTokenSupport.encodeDelegationTokenInformation(token)); - return (Boolean)invokeOnRawStore("addToken", new Object[] {identifier, tokenStr}, + boolean result = (Boolean)invokeOnRawStore("addToken", new Object[] {identifier, tokenStr}, String.class, String.class); + if (LOG.isTraceEnabled()) { + LOG.trace("addToken: tokenIdentifier = " + tokenIdentifier + ", addded = " + result); + } + return result; } catch (IOException e) { throw new TokenStoreException(e); } @@ -75,7 +87,14 @@ public DelegationTokenInformation getToken(DelegationTokenIdentifier tokenIdenti try { String tokenStr = (String)invokeOnRawStore("getToken", new Object[] { TokenStoreDelegationTokenSecretManager.encodeWritable(tokenIdentifier)}, String.class); - return (null == tokenStr) ? null : HiveDelegationTokenSupport.decodeDelegationTokenInformation(Base64.decodeBase64(tokenStr)); + DelegationTokenInformation result = null; + if (tokenStr != null) { + result = HiveDelegationTokenSupport.decodeDelegationTokenInformation(Base64.decodeBase64(tokenStr)); + } + if (LOG.isTraceEnabled()) { + LOG.trace("getToken: tokenIdentifier = " + tokenIdentifier + ", result = " + result); + } + return result; } catch (IOException e) { throw new TokenStoreException(e); } @@ -84,8 +103,12 @@ public DelegationTokenInformation getToken(DelegationTokenIdentifier tokenIdenti @Override public boolean removeToken(DelegationTokenIdentifier tokenIdentifier) throws TokenStoreException{ try { - return (Boolean)invokeOnRawStore("removeToken", new Object[] { + boolean result = (Boolean)invokeOnRawStore("removeToken", new Object[] { TokenStoreDelegationTokenSecretManager.encodeWritable(tokenIdentifier)}, String.class); + if (LOG.isTraceEnabled()) { + LOG.trace("removeToken: tokenIdentifier = " + tokenIdentifier + ", addded = " + result); + } + return result; } catch (IOException e) { throw new TokenStoreException(e); } diff --git a/shims/common-secure/src/main/java/org/apache/hadoop/hive/thrift/MemoryTokenStore.java b/shims/common-secure/src/main/java/org/apache/hadoop/hive/thrift/MemoryTokenStore.java index cf60b7c..e982ea7 100644 --- a/shims/common-secure/src/main/java/org/apache/hadoop/hive/thrift/MemoryTokenStore.java +++ b/shims/common-secure/src/main/java/org/apache/hadoop/hive/thrift/MemoryTokenStore.java @@ -28,11 +28,14 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge.Server.ServerMode; import org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager.DelegationTokenInformation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Default in-memory token store implementation. */ public class MemoryTokenStore implements DelegationTokenStore { + private static final Logger LOG = LoggerFactory.getLogger(MemoryTokenStore.class); private final Map masterKeys = new ConcurrentHashMap(); @@ -56,17 +59,26 @@ public Configuration getConf() { @Override public int addMasterKey(String s) { int keySeq = masterKeySeq.getAndIncrement(); + if (LOG.isTraceEnabled()) { + LOG.trace("addMasterKey: s = " + s + ", keySeq = " + keySeq); + } masterKeys.put(keySeq, s); return keySeq; } @Override public void updateMasterKey(int keySeq, String s) { + if (LOG.isTraceEnabled()) { + LOG.trace("updateMasterKey: s = " + s + ", keySeq = " + keySeq); + } masterKeys.put(keySeq, s); } @Override public boolean removeMasterKey(int keySeq) { + if (LOG.isTraceEnabled()) { + LOG.trace("removeMasterKey: keySeq = " + keySeq); + } return masterKeys.remove(keySeq) != null; } @@ -79,18 +91,28 @@ public boolean removeMasterKey(int keySeq) { public boolean addToken(DelegationTokenIdentifier tokenIdentifier, DelegationTokenInformation token) { DelegationTokenInformation tokenInfo = tokens.putIfAbsent(tokenIdentifier, token); + if (LOG.isTraceEnabled()) { + LOG.trace("addToken: tokenIdentifier = " + tokenIdentifier + ", addded = " + (tokenInfo == null)); + } return (tokenInfo == null); } @Override public boolean removeToken(DelegationTokenIdentifier tokenIdentifier) { DelegationTokenInformation tokenInfo = tokens.remove(tokenIdentifier); + if (LOG.isTraceEnabled()) { + LOG.trace("removeToken: tokenIdentifier = " + tokenIdentifier + ", removed = " + (tokenInfo != null)); + } return tokenInfo != null; } @Override public DelegationTokenInformation getToken(DelegationTokenIdentifier tokenIdentifier) { - return tokens.get(tokenIdentifier); + DelegationTokenInformation result = tokens.get(tokenIdentifier); + if (LOG.isTraceEnabled()) { + LOG.trace("getToken: tokenIdentifier = " + tokenIdentifier + ", result = " + result); + } + return result; } @Override