Zhijie Shen created HADOOP-11181:
------------------------------------

             Summary: o.a.h.security.token.delegation.DelegationTokenManager 
should be more generalized to handle other DelegationTokenIdentifier
                 Key: HADOOP-11181
                 URL: https://issues.apache.org/jira/browse/HADOOP-11181
             Project: Hadoop Common
          Issue Type: Bug
          Components: security
            Reporter: Zhijie Shen
            Assignee: Zhijie Shen


While DelegationTokenManager can set external secretManager, it have the 
assumption that the token is going to be 
o.a.h.security.token.delegation.DelegationTokenIdentifier, and use 
DelegationTokenIdentifier method to decode a token. 
{code}
  @SuppressWarnings("unchecked")
  public UserGroupInformation verifyToken(Token<DelegationTokenIdentifier>
      token) throws IOException {
    ByteArrayInputStream buf = new ByteArrayInputStream(token.getIdentifier());
    DataInputStream dis = new DataInputStream(buf);
    DelegationTokenIdentifier id = new DelegationTokenIdentifier(tokenKind);
    id.readFields(dis);
    dis.close();
    secretManager.verifyToken(id, token.getPassword());
    return id.getUser();
  }
{code}

It's not going to work it the token kind is other than 
web.DelegationTokenIdentifier. For example, RM want to reuse it but hook it to 
RMDelegationTokenSecretManager and RMDelegationTokenIdentifier, which has the 
customized way to decode a token.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to