UserGroupInformation { public boolean addToken(Token<? extends TokenIdentifier> token) { return (token != null) ? addToken(token.getService(), token) : false; } UserGroupInformation(Subject subject); @VisibleForTesting static void setShouldRenewImmediatelyForTests(boolean immediate); static void reattachMetrics(); static boolean isInitialized(); @InterfaceAudience.Public @InterfaceStability.Evolving static void setConfiguration(Configuration conf); @InterfaceAudience.Private @VisibleForTesting static void reset(); static boolean isSecurityEnabled(); boolean hasKerberosCredentials(); @InterfaceAudience.Public @InterfaceStability.Evolving static UserGroupInformation getCurrentUser(); static UserGroupInformation getBestUGI(
      String ticketCachePath, String user); @InterfaceAudience.Public @InterfaceStability.Evolving static UserGroupInformation getUGIFromTicketCache(
            String ticketCache, String user); static UserGroupInformation getUGIFromSubject(Subject subject); @InterfaceAudience.Public @InterfaceStability.Evolving static UserGroupInformation getLoginUser(); static String trimLoginMethod(String userName); @InterfaceAudience.Public @InterfaceStability.Evolving static void loginUserFromSubject(Subject subject); @InterfaceAudience.Private @InterfaceStability.Unstable @VisibleForTesting static void setLoginUser(UserGroupInformation ugi); boolean isFromKeytab(); @InterfaceAudience.Private @InterfaceStability.Unstable boolean shouldRelogin(); @InterfaceAudience.Public @InterfaceStability.Evolving static void loginUserFromKeytab(String user,
                                  String path
                                  ); @InterfaceAudience.Public @InterfaceStability.Evolving void logoutUserFromKeytab(); void checkTGTAndReloginFromKeytab(); @InterfaceAudience.Public @InterfaceStability.Evolving void reloginFromKeytab(); @InterfaceAudience.Public @InterfaceStability.Evolving void reloginFromTicketCache(); static UserGroupInformation loginUserFromKeytabAndReturnUGI(String user,
                                  String path
                                  ); @InterfaceAudience.Public @InterfaceStability.Evolving static boolean isLoginKeytabBased(); static boolean isLoginTicketBased(); @InterfaceAudience.Public @InterfaceStability.Evolving static UserGroupInformation createRemoteUser(String user); @InterfaceAudience.Public @InterfaceStability.Evolving static UserGroupInformation createRemoteUser(String user, AuthMethod authMethod); @InterfaceAudience.Public @InterfaceStability.Evolving static UserGroupInformation createProxyUser(String user,
      UserGroupInformation realUser); @InterfaceAudience.Public @InterfaceStability.Evolving UserGroupInformation getRealUser(); @InterfaceAudience.Public @InterfaceStability.Evolving static UserGroupInformation createUserForTesting(String user, 
                                                          String[] userGroups); static UserGroupInformation createProxyUserForTesting(String user,
      UserGroupInformation realUser, String[] userGroups); String getShortUserName(); String getPrimaryGroupName(); @InterfaceAudience.Public @InterfaceStability.Evolving String getUserName(); synchronized boolean addTokenIdentifier(TokenIdentifier tokenId); synchronized Set<TokenIdentifier> getTokenIdentifiers(); boolean addToken(Token<? extends TokenIdentifier> token); boolean addToken(Text alias, Token<? extends TokenIdentifier> token); Collection<Token<? extends TokenIdentifier>> getTokens(); Credentials getCredentials(); void addCredentials(Credentials credentials); void addApplicationId(String applicationId); String getApplicationId(); String[] getGroupNames(); List<String> getGroups(); @Override String toString(); synchronized void setAuthenticationMethod(AuthenticationMethod authMethod); void setAuthenticationMethod(AuthMethod authMethod); synchronized AuthenticationMethod getAuthenticationMethod(); synchronized AuthenticationMethod getRealAuthenticationMethod(); static AuthenticationMethod getRealAuthenticationMethod(
      UserGroupInformation ugi); @Override boolean equals(Object o); @Override int hashCode(); @InterfaceAudience.Public @InterfaceStability.Evolving T doAs(PrivilegedAction<T> action); @InterfaceAudience.Public @InterfaceStability.Evolving T doAs(PrivilegedExceptionAction<T> action
                    ); @InterfaceAudience.LimitedPrivate({"HDFS", "KMS"}) @InterfaceStability.Unstable static void logUserInfo(Logger log, String caption,
      UserGroupInformation ugi); @InterfaceAudience.LimitedPrivate({"HDFS", "KMS"}) @InterfaceStability.Unstable static void logAllUserInfo(Logger log, UserGroupInformation ugi); static void logAllUserInfo(UserGroupInformation ugi); static void main(String [] args); static final String HADOOP_TOKEN_FILE_LOCATION; }
@SuppressWarnings("unchecked") @Test (timeout = 30000) public <T extends TokenIdentifier> void testAddToken() throws Exception { UserGroupInformation ugi = UserGroupInformation.createRemoteUser("someone"); Token<T> t1 = mock(Token.class); Token<T> t2 = mock(Token.class); Token<T> t3 = mock(Token.class); ugi.addToken(t1); checkTokens(ugi, t1); ugi.addToken(t2); checkTokens(ugi, t2); when(t1.getService()).thenReturn(new Text("t1")); ugi.addToken(t1); checkTokens(ugi, t1, t2); when(t3.getService()).thenReturn(new Text("t1")); ugi.addToken(t3); checkTokens(ugi, t2, t3); when(t1.getService()).thenReturn(new Text("t1.1")); ugi.addToken(t1); checkTokens(ugi, t1, t2, t3); ugi.addToken(t1); checkTokens(ugi, t1, t2, t3); }