|
@@ -34,7 +34,6 @@ import java.util.Arrays;
|
|
|
import java.util.Collection;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
|
-import java.util.LinkedHashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
@@ -132,6 +131,10 @@ public class UserGroupInformation {
|
|
|
/** Server-side groups fetching service */
|
|
|
private static Groups groups;
|
|
|
|
|
|
+ /**Environment variable pointing to the token cache file*/
|
|
|
+ public static final String HADOOP_TOKEN_FILE_LOCATION =
|
|
|
+ "HADOOP_TOKEN_FILE_LOCATION";
|
|
|
+
|
|
|
/**
|
|
|
* A method to initialize the fields that depend on a configuration.
|
|
|
* Must be called before useKerberos or groups is used.
|
|
@@ -317,6 +320,10 @@ public class UserGroupInformation {
|
|
|
}
|
|
|
login.login();
|
|
|
loginUser = new UserGroupInformation(login.getSubject());
|
|
|
+ String tokenFile = System.getenv(HADOOP_TOKEN_FILE_LOCATION);
|
|
|
+ if (tokenFile != null && isSecurityEnabled()) {
|
|
|
+ TokenStorage.readTokensAndLoadInUGI(tokenFile, new Configuration(), loginUser);
|
|
|
+ }
|
|
|
} catch (LoginException le) {
|
|
|
throw new IOException("failure to login", le);
|
|
|
}
|