[ 
https://issues.apache.org/jira/browse/HDFS-6986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14118902#comment-14118902
 ] 

Alejandro Abdelnur commented on HDFS-6986:
------------------------------------------

The changes in {{DistributedFileSystem.java}} should be something like:

{code}
  @Override
  public Token<?>[] addDelegationTokens(String renewer, Credentials 
credentials) 
      throws IOException {
    Token<?>[] tokens = super.addDelegationTokens(renewer, credentials);
    if (dfs.getKeyProvider() != null) {
      KeyProviderDelegationTokenExtension keyProviderDelegationTokenExtension = 
          KeyProviderDelegationTokenExtension.
              createKeyProviderDelegationTokenExtension(dfs.getKeyProvider());
      Token<?>[] kpTokens = keyProviderDelegationTokenExtension.
          addDelegationTokens(renewer, credentials);
      if (tokens != null && kpTokens != null) {
        Token<?>[] all = new Token<?>[tokens.length + kpTokens.length];
        System.arraycopy(tokens, 0, all, 0, tokens.length);        
        System.arraycopy(kpTokens, 0, all, tokens.length, kpTokens.length);
        tokens = all;
      } else {
        tokens = (tokens != null) ? tokens : kpTokens;
      }
    }
    return tokens;
  }
{code}

And {{DFSClient}} should expose  the keyprovider via a {{getKeyProvider()}} 
method.


  
 

> DistributedFileSystem must get delegation tokens from configured KeyProvider
> ----------------------------------------------------------------------------
>
>                 Key: HDFS-6986
>                 URL: https://issues.apache.org/jira/browse/HDFS-6986
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: security
>    Affects Versions: 2.6.0
>            Reporter: Alejandro Abdelnur
>            Assignee: Zhe Zhang
>
> {{KeyProvider}} via {{KeyProviderDelegationTokenExtension}} provides 
> delegation tokens. {{DistributedFileSystem}} should augment the HDFS 
> delegation tokens with the keyprovider ones so tasks can interact with 
> keyprovider when it is a client/server impl (KMS).



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

Reply via email to