[
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
> "[email protected]"
> 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)