Description
With KNOX-2714, users can create tokens on behalf of others by configuring Knox Token Impersonation in the KNOXTOKEN service.
However, when there are multiple topologies with the KNOXTOKEN service and they have different proxyuser configurations the feature breaks as follows:
- topology1 enables user1 to create tokens for targetUser1
- topology2 enables user2 to create tokens for targetUser2
Let's see this flow:
- get a token for targetUser1 by user1 - this succeeds
- get a token for targetUser2 by user2 - this succeeds
- get another token for targetUser1 by user1 - this fails
The reason is that Knox's KNOXTOKEN service uses Hadoop's ProxyUsers.refreshSuperUserGroupsConfiguration(Configuration conf, String proxyUserPrefix) which the 2nd call overrides in the init method of that servlet. So the 3rd call will fail because the previous configuration on that topology is lost.
Attachments
Issue Links
- links to