Author: ddas Date: Fri Jun 11 20:32:26 2010 New Revision: 953863 URL: http://svn.apache.org/viewvc?rev=953863&view=rev Log: HADOOP-6814. Adds an API in UserGroupInformation to get the real authentication method of a passed UGI. Contributed by Jitendra Pandey.
Modified: hadoop/common/trunk/CHANGES.txt hadoop/common/trunk/src/java/org/apache/hadoop/security/UserGroupInformation.java hadoop/common/trunk/src/test/core/org/apache/hadoop/security/TestUserGroupInformation.java Modified: hadoop/common/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/CHANGES.txt?rev=953863&r1=953862&r2=953863&view=diff ============================================================================== --- hadoop/common/trunk/CHANGES.txt (original) +++ hadoop/common/trunk/CHANGES.txt Fri Jun 11 20:32:26 2010 @@ -50,6 +50,9 @@ Trunk (unreleased changes) HADOOP-6526. Need mapping from long principal names to local OS user names. (boryas) + HADOOP-6814. Adds an API in UserGroupInformation to get the real + authentication method of a passed UGI. (Jitendra Pandey via ddas) + BUG FIXES HADOOP-6638. try to relogin in a case of failed RPC connection (expired tgt) only in case the subject is loginUser or proxyUgi.realUser. (boryas) Modified: hadoop/common/trunk/src/java/org/apache/hadoop/security/UserGroupInformation.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/security/UserGroupInformation.java?rev=953863&r1=953862&r2=953863&view=diff ============================================================================== --- hadoop/common/trunk/src/java/org/apache/hadoop/security/UserGroupInformation.java (original) +++ hadoop/common/trunk/src/java/org/apache/hadoop/security/UserGroupInformation.java Fri Jun 11 20:32:26 2010 @@ -735,6 +735,22 @@ public class UserGroupInformation { } return null; } + + /** + * Returns the authentication method of a ugi. If the authentication method is + * PROXY, returns the authentication method of the real user. + * + * @param ugi + * @return AuthenticationMethod + */ + public static AuthenticationMethod getRealAuthenticationMethod( + UserGroupInformation ugi) { + AuthenticationMethod authMethod = ugi.getAuthenticationMethod(); + if (authMethod == AuthenticationMethod.PROXY) { + authMethod = ugi.getRealUser().getAuthenticationMethod(); + } + return authMethod; + } /** * Compare the subjects to see if they are equal to each other. Modified: hadoop/common/trunk/src/test/core/org/apache/hadoop/security/TestUserGroupInformation.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/test/core/org/apache/hadoop/security/TestUserGroupInformation.java?rev=953863&r1=953862&r2=953863&view=diff ============================================================================== --- hadoop/common/trunk/src/test/core/org/apache/hadoop/security/TestUserGroupInformation.java (original) +++ hadoop/common/trunk/src/test/core/org/apache/hadoop/security/TestUserGroupInformation.java Fri Jun 11 20:32:26 2010 @@ -277,6 +277,8 @@ public class TestUserGroupInformation { Assert.assertEquals(am, ugi.getAuthenticationMethod()); Assert.assertEquals(null, proxyUgi.getAuthenticationMethod()); proxyUgi.setAuthenticationMethod(AuthenticationMethod.PROXY); + Assert.assertEquals(am, UserGroupInformation + .getRealAuthenticationMethod(proxyUgi)); proxyUgi.doAs(new PrivilegedExceptionAction<Object>() { public Object run() throws IOException { Assert.assertEquals(AuthenticationMethod.PROXY, UserGroupInformation