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

Sevada Abraamyan commented on YARN-2892:
----------------------------------------

I don't see this either. However, one thing I did notice is that with the patch 
we are now changing how ClientToAMToken is constructed as we are using the 
short name instead of full name. 

{code}
 @Override
  public ApplicationReport createAndGetApplicationReport(String clientUserName, 
boolean allowAccess) {
....
    if (UserGroupInformation.isSecurityEnabled()) {
      // get a token so the client can communicate with the app attempt
      // NOTE: token may be unavailable if the attempt is not running
      Token<ClientToAMTokenIdentifier> attemptClientToAMToken =
      this.currentAttempt.createClientToken(clientUserName);
      if (attemptClientToAMToken != null) {
        clientToAMToken = BuilderUtils.newClientToAMToken(
        attemptClientToAMToken.getIdentifier(),
        attemptClientToAMToken.getKind().toString(),
        attemptClientToAMToken.getPassword(),
        attemptClientToAMToken.getService().toString());
       }
...
{code}

> Unable to get AMRMToken in unmanaged AM when using a secure cluster
> -------------------------------------------------------------------
>
>                 Key: YARN-2892
>                 URL: https://issues.apache.org/jira/browse/YARN-2892
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>            Reporter: Sevada Abraamyan
>            Assignee: Sevada Abraamyan
>         Attachments: YARN-2892.patch, YARN-2892.patch, YARN-2892.patch
>
>
> An AMRMToken is retrieved from the ApplicationReport by the YarnClient. 
> When the RM creates the ApplicationReport and sends it back to the client it 
> makes a simple security check whether it should include the AMRMToken in the 
> report (See createAndGetApplicationReport in RMAppImpl).This security check 
> verifies that the user who submitted the original application is the same 
> user who is requesting the ApplicationReport. If they are indeed the same 
> user then it includes the AMRMToken, otherwise it does not include it.
> The problem arises from the fact that when an application is submitted, the 
> RM  saves the short username of the user who created the application (See 
> submitApplication in ClientRmService). Afterwards when the ApplicationReport 
> is requested, the system tries to match the full username of the requester 
> against the previously stored short username. 
> In a secure cluster using Kerberos this check fails because the principle is 
> stripped from the username when we request a short username. So for example 
> the short username might be "Foo" whereas the full username is 
> "f...@company.com"
> Note: A very similar problem has been previously reported 
> ([Yarn-2232|https://issues.apache.org/jira/browse/YARN-2232])



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

Reply via email to