blob: 9db68b21837cb8041e13bdce68a4149c1ec35cba [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_292) on Tue Jun 15 06:01:40 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>UserGroupInformation (Apache Hadoop Common 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="UserGroupInformation (Apache Hadoop Common 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":9,"i16":10,"i17":9,"i18":10,"i19":10,"i20":9,"i21":10,"i22":10,"i23":9,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":9,"i30":9,"i31":10,"i32":10,"i33":10,"i34":10,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":10,"i44":9,"i45":9,"i46":10,"i47":10,"i48":10,"i49":10,"i50":9,"i51":9,"i52":10,"i53":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/UserGroupInformation.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/hadoop/security/ShellBasedIdMapping.html" title="class in org.apache.hadoop.security"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/hadoop/security/UserGroupInformation.html" target="_top">Frames</a></li>
<li><a href="UserGroupInformation.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.security</div>
<h2 title="Class UserGroupInformation" class="title">Class UserGroupInformation</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.security.UserGroupInformation</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public class <span class="typeNameLabel">UserGroupInformation</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">User and group information for Hadoop.
This class wraps around a JAAS Subject and provides methods to determine the
user's username and groups. It supports both the Windows, Unix and Kerberos
login modules.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a></span></code>
<div class="block">existing types of authentications' methods</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#HADOOP_TOKEN">HADOOP_TOKEN</a></span></code>
<div class="block">Environment variable pointing to the base64 tokens.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#HADOOP_TOKEN_FILE_LOCATION">HADOOP_TOKEN_FILE_LOCATION</a></span></code>
<div class="block">Environment variable pointing to the token cache file</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#addCredentials-org.apache.hadoop.security.Credentials-">addCredentials</a></span>(<a href="../../../../org/apache/hadoop/security/Credentials.html" title="class in org.apache.hadoop.security">Credentials</a>&nbsp;credentials)</code>
<div class="block">Add the given Credentials to this user.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#addToken-org.apache.hadoop.io.Text-org.apache.hadoop.security.token.Token-">addToken</a></span>(<a href="../../../../org/apache/hadoop/io/Text.html" title="class in org.apache.hadoop.io">Text</a>&nbsp;alias,
<a href="../../../../org/apache/hadoop/security/token/Token.html" title="class in org.apache.hadoop.security.token">Token</a>&lt;? extends <a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&gt;&nbsp;token)</code>
<div class="block">Add a named token to this UGI</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#addToken-org.apache.hadoop.security.token.Token-">addToken</a></span>(<a href="../../../../org/apache/hadoop/security/token/Token.html" title="class in org.apache.hadoop.security.token">Token</a>&lt;? extends <a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&gt;&nbsp;token)</code>
<div class="block">Add a token to this UGI</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#addTokenIdentifier-org.apache.hadoop.security.token.TokenIdentifier-">addTokenIdentifier</a></span>(<a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&nbsp;tokenId)</code>
<div class="block">Add a TokenIdentifier to this UGI.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#checkTGTAndReloginFromKeytab--">checkTGTAndReloginFromKeytab</a></span>()</code>
<div class="block">Re-login a user from keytab if TGT is expired or is close to expiry.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#createProxyUser-java.lang.String-org.apache.hadoop.security.UserGroupInformation-">createProxyUser</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;realUser)</code>
<div class="block">Create a proxy user using username of the effective user and the ugi of the
real user.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#createProxyUserForTesting-java.lang.String-org.apache.hadoop.security.UserGroupInformation-java.lang.String:A-">createProxyUserForTesting</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;realUser,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;userGroups)</code>
<div class="block">Create a proxy user UGI for testing HDFS and MapReduce</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#createRemoteUser-java.lang.String-">createRemoteUser</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user)</code>
<div class="block">Create a user from a login name.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#createRemoteUser-java.lang.String-org.apache.hadoop.security.SaslRpcServer.AuthMethod-">createRemoteUser</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="../../../../org/apache/hadoop/security/SaslRpcServer.AuthMethod.html" title="enum in org.apache.hadoop.security">SaslRpcServer.AuthMethod</a>&nbsp;authMethod)</code>
<div class="block">Create a user from a login name.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#createUserForTesting-java.lang.String-java.lang.String:A-">createUserForTesting</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;userGroups)</code>
<div class="block">Create a UGI for testing HDFS and MapReduce</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#doAs-java.security.PrivilegedAction-">doAs</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/PrivilegedAction.html?is-external=true" title="class or interface in java.security">PrivilegedAction</a>&lt;T&gt;&nbsp;action)</code>
<div class="block">Run the given action as the user.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#doAs-java.security.PrivilegedExceptionAction-">doAs</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/PrivilegedExceptionAction.html?is-external=true" title="class or interface in java.security">PrivilegedExceptionAction</a>&lt;T&gt;&nbsp;action)</code>
<div class="block">Run the given action as the user, potentially throwing an exception.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
<div class="block">Compare the subjects to see if they are equal to each other.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#forceReloginFromKeytab--">forceReloginFromKeytab</a></span>()</code>
<div class="block">Force re-Login a user in from a keytab file irrespective of the last login
time.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getAuthenticationMethod--">getAuthenticationMethod</a></span>()</code>
<div class="block">Get the authentication method from the subject</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getBestUGI-java.lang.String-java.lang.String-">getBestUGI</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;ticketCachePath,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user)</code>
<div class="block">Find the most appropriate UserGroupInformation to use</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/hadoop/security/Credentials.html" title="class in org.apache.hadoop.security">Credentials</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getCredentials--">getCredentials</a></span>()</code>
<div class="block">Obtain the tokens in credentials form associated with this user.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getCurrentUser--">getCurrentUser</a></span>()</code>
<div class="block">Return the current user, including any doAs in the current stack.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getGroupNames--">getGroupNames</a></span>()</code>
<div class="block">Get the group names for this user.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getGroups--">getGroups</a></span>()</code>
<div class="block">Get the group names for this user.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getLoginUser--">getLoginUser</a></span>()</code>
<div class="block">Get the currently logged in user.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getPrimaryGroupName--">getPrimaryGroupName</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getRealAuthenticationMethod--">getRealAuthenticationMethod</a></span>()</code>
<div class="block">Get the authentication method from the real user's subject.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getRealAuthenticationMethod-org.apache.hadoop.security.UserGroupInformation-">getRealAuthenticationMethod</a></span>(<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;ugi)</code>
<div class="block">Returns the authentication method of a ugi.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getRealUser--">getRealUser</a></span>()</code>
<div class="block">get RealUser (vs.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getShortUserName--">getShortUserName</a></span>()</code>
<div class="block">Get the user's login name.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getSubject--">getSubject</a></span>()</code>
<div class="block">Get the underlying subject from this ugi.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getTokenIdentifiers--">getTokenIdentifiers</a></span>()</code>
<div class="block">Get the set of TokenIdentifiers belonging to this UGI</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/hadoop/security/token/Token.html" title="class in org.apache.hadoop.security.token">Token</a>&lt;? extends <a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getTokens--">getTokens</a></span>()</code>
<div class="block">Obtain the collection of tokens associated with this user.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getUGIFromSubject-javax.security.auth.Subject-">getUGIFromSubject</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;subject)</code>
<div class="block">Create a UserGroupInformation from a Subject with Kerberos principal.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getUGIFromTicketCache-java.lang.String-java.lang.String-">getUGIFromTicketCache</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;ticketCache,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user)</code>
<div class="block">Create a UserGroupInformation from a Kerberos ticket cache.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getUserName--">getUserName</a></span>()</code>
<div class="block">Get the user's full principal name.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#hashCode--">hashCode</a></span>()</code>
<div class="block">Return the hash of the subject.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#hasKerberosCredentials--">hasKerberosCredentials</a></span>()</code>
<div class="block">checks if logged in using kerberos</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#isFromKeytab--">isFromKeytab</a></span>()</code>
<div class="block">Is this user logged in from a keytab file managed by the UGI?</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#isInitialized--">isInitialized</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#isLoginKeytabBased--">isLoginKeytabBased</a></span>()</code>
<div class="block">Did the login happen via keytab</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#isLoginTicketBased--">isLoginTicketBased</a></span>()</code>
<div class="block">Did the login happen via ticket cache</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#isSecurityEnabled--">isSecurityEnabled</a></span>()</code>
<div class="block">Determine if UserGroupInformation is using Kerberos to determine
user identities or is relying on simple authentication</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#logAllUserInfo-org.apache.hadoop.security.UserGroupInformation-">logAllUserInfo</a></span>(<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;ugi)</code>
<div class="block">Log all (current, real, login) UGI and token info into UGI debug log.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#loginUserFromKeytab-java.lang.String-java.lang.String-">loginUserFromKeytab</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</code>
<div class="block">Log a user in from a keytab file.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#loginUserFromKeytabAndReturnUGI-java.lang.String-java.lang.String-">loginUserFromKeytabAndReturnUGI</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</code>
<div class="block">Log a user in from a keytab file.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#loginUserFromSubject-javax.security.auth.Subject-">loginUserFromSubject</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;subject)</code>
<div class="block">Log in a user using the given subject</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#logoutUserFromKeytab--">logoutUserFromKeytab</a></span>()</code>
<div class="block">Log the current user out who previously logged in using keytab.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#main-java.lang.String:A-">main</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>
<div class="block">A test method to print out the current user's UGI.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#reattachMetrics--">reattachMetrics</a></span>()</code>
<div class="block">Reattach the class's metrics to a new metric system.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#reloginFromKeytab--">reloginFromKeytab</a></span>()</code>
<div class="block">Re-Login a user in from a keytab file.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#reloginFromTicketCache--">reloginFromTicketCache</a></span>()</code>
<div class="block">Re-Login a user in from the ticket cache.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#setAuthenticationMethod-org.apache.hadoop.security.SaslRpcServer.AuthMethod-">setAuthenticationMethod</a></span>(<a href="../../../../org/apache/hadoop/security/SaslRpcServer.AuthMethod.html" title="enum in org.apache.hadoop.security">SaslRpcServer.AuthMethod</a>&nbsp;authMethod)</code>
<div class="block">Sets the authentication method in the subject</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#setAuthenticationMethod-org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod-">setAuthenticationMethod</a></span>(<a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a>&nbsp;authMethod)</code>
<div class="block">Sets the authentication method in the subject</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#setConfiguration-org.apache.hadoop.conf.Configuration-">setConfiguration</a></span>(<a href="../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf)</code>
<div class="block">Set the static configuration for UGI.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#setShouldRenewImmediatelyForTests-boolean-">setShouldRenewImmediatelyForTests</a></span>(boolean&nbsp;immediate)</code>
<div class="block">For the purposes of unit tests, we want to test login
from keytab and don't want to wait until the renew
window (controlled by TICKET_RENEW_WINDOW).</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#toString--">toString</a></span>()</code>
<div class="block">Return the username.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#trimLoginMethod-java.lang.String-">trimLoginMethod</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName)</code>
<div class="block">remove the login method that is followed by a space from the username
e.g.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="HADOOP_TOKEN_FILE_LOCATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HADOOP_TOKEN_FILE_LOCATION</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> HADOOP_TOKEN_FILE_LOCATION</pre>
<div class="block">Environment variable pointing to the token cache file</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.hadoop.security.UserGroupInformation.HADOOP_TOKEN_FILE_LOCATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="HADOOP_TOKEN">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HADOOP_TOKEN</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> HADOOP_TOKEN</pre>
<div class="block">Environment variable pointing to the base64 tokens.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.hadoop.security.UserGroupInformation.HADOOP_TOKEN">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setShouldRenewImmediatelyForTests-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setShouldRenewImmediatelyForTests</h4>
<pre>public static&nbsp;void&nbsp;setShouldRenewImmediatelyForTests(boolean&nbsp;immediate)</pre>
<div class="block">For the purposes of unit tests, we want to test login
from keytab and don't want to wait until the renew
window (controlled by TICKET_RENEW_WINDOW).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>immediate</code> - true if we should login without waiting for ticket window</dd>
</dl>
</li>
</ul>
<a name="reattachMetrics--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reattachMetrics</h4>
<pre>public static&nbsp;void&nbsp;reattachMetrics()</pre>
<div class="block">Reattach the class's metrics to a new metric system.</div>
</li>
</ul>
<a name="isInitialized--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInitialized</h4>
<pre>public static&nbsp;boolean&nbsp;isInitialized()</pre>
</li>
</ul>
<a name="setConfiguration-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConfiguration</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;void&nbsp;setConfiguration(<a href="../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf)</pre>
<div class="block">Set the static configuration for UGI.
In particular, set the security authentication mechanism and the
group look up service.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - the configuration to use</dd>
</dl>
</li>
</ul>
<a name="isSecurityEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSecurityEnabled</h4>
<pre>public static&nbsp;boolean&nbsp;isSecurityEnabled()</pre>
<div class="block">Determine if UserGroupInformation is using Kerberos to determine
user identities or is relying on simple authentication</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if UGI is working in a secure environment</dd>
</dl>
</li>
</ul>
<a name="hasKerberosCredentials--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasKerberosCredentials</h4>
<pre>public&nbsp;boolean&nbsp;hasKerberosCredentials()</pre>
<div class="block">checks if logged in using kerberos</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the subject logged via keytab or has a Kerberos TGT</dd>
</dl>
</li>
</ul>
<a name="getCurrentUser--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentUser</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;getCurrentUser()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Return the current user, including any doAs in the current stack.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current user</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if login fails</dd>
</dl>
</li>
</ul>
<a name="getBestUGI-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBestUGI</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;getBestUGI(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;ticketCachePath,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Find the most appropriate UserGroupInformation to use</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ticketCachePath</code> - The Kerberos ticket cache path, or NULL
if none is specfied</dd>
<dd><code>user</code> - The user name, or NULL if none is specified.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The most appropriate UserGroupInformation</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getUGIFromTicketCache-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUGIFromTicketCache</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;getUGIFromTicketCache(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;ticketCache,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Create a UserGroupInformation from a Kerberos ticket cache.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - The principal name to load from the ticket
cache</dd>
<dd><code>ticketCache</code> - the path to the ticket cache file</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if the kerberos login fails</dd>
</dl>
</li>
</ul>
<a name="getUGIFromSubject-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUGIFromSubject</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;getUGIFromSubject(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;subject)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Create a UserGroupInformation from a Subject with Kerberos principal.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subject</code> - The KerberosPrincipal to use in UGI.
The creator of subject is responsible for
renewing credentials.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="../../../../org/apache/hadoop/security/KerberosAuthException.html" title="class in org.apache.hadoop.security">KerberosAuthException</a></code> - if the kerberos login fails</dd>
</dl>
</li>
</ul>
<a name="getLoginUser--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLoginUser</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;getLoginUser()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Get the currently logged in user. If no explicit login has occurred,
the user will automatically be logged in with either kerberos credentials
if available, or as the local OS user, based on security settings.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the logged in user</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if login fails</dd>
</dl>
</li>
</ul>
<a name="trimLoginMethod-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimLoginMethod</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;trimLoginMethod(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName)</pre>
<div class="block">remove the login method that is followed by a space from the username
e.g. "jack (auth:SIMPLE)" -&gt; "jack"</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>userName</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>userName without login method</dd>
</dl>
</li>
</ul>
<a name="loginUserFromSubject-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loginUserFromSubject</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;void&nbsp;loginUserFromSubject(<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;subject)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Log in a user using the given subject</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subject</code> - the subject to use when logging in a user, or null to
create a new subject.
If subject is not null, the creator of subject is responsible for renewing
credentials.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if login fails</dd>
</dl>
</li>
</ul>
<a name="isFromKeytab--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFromKeytab</h4>
<pre>public&nbsp;boolean&nbsp;isFromKeytab()</pre>
<div class="block">Is this user logged in from a keytab file managed by the UGI?</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the credentials are from a keytab file.</dd>
</dl>
</li>
</ul>
<a name="loginUserFromKeytab-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loginUserFromKeytab</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;void&nbsp;loginUserFromKeytab(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Log a user in from a keytab file. Loads a user identity from a keytab
file and logs them in. They become the currently logged-in user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the principal name to load from the keytab</dd>
<dd><code>path</code> - the path to the keytab file</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="../../../../org/apache/hadoop/security/KerberosAuthException.html" title="class in org.apache.hadoop.security">KerberosAuthException</a></code> - if it's a kerberos login exception.</dd>
</dl>
</li>
</ul>
<a name="logoutUserFromKeytab--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logoutUserFromKeytab</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public&nbsp;void&nbsp;logoutUserFromKeytab()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Log the current user out who previously logged in using keytab.
This method assumes that the user logged in by calling
<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#loginUserFromKeytab-java.lang.String-java.lang.String-"><code>loginUserFromKeytab(String, String)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="../../../../org/apache/hadoop/security/KerberosAuthException.html" title="class in org.apache.hadoop.security">KerberosAuthException</a></code> - if a failure occurred in logout,
or if the user did not log in by invoking loginUserFromKeyTab() before.</dd>
</dl>
</li>
</ul>
<a name="checkTGTAndReloginFromKeytab--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkTGTAndReloginFromKeytab</h4>
<pre>public&nbsp;void&nbsp;checkTGTAndReloginFromKeytab()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Re-login a user from keytab if TGT is expired or is close to expiry.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="../../../../org/apache/hadoop/security/KerberosAuthException.html" title="class in org.apache.hadoop.security">KerberosAuthException</a></code> - if it's a kerberos login exception.</dd>
</dl>
</li>
</ul>
<a name="reloginFromKeytab--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reloginFromKeytab</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public&nbsp;void&nbsp;reloginFromKeytab()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Re-Login a user in from a keytab file. Loads a user identity from a keytab
file and logs them in. They become the currently logged-in user. This
method assumes that <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#loginUserFromKeytab-java.lang.String-java.lang.String-"><code>loginUserFromKeytab(String, String)</code></a> had
happened already.
The Subject field of this UserGroupInformation object is updated to have
the new credentials.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="../../../../org/apache/hadoop/security/KerberosAuthException.html" title="class in org.apache.hadoop.security">KerberosAuthException</a></code> - on a failure</dd>
</dl>
</li>
</ul>
<a name="forceReloginFromKeytab--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forceReloginFromKeytab</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public&nbsp;void&nbsp;forceReloginFromKeytab()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Force re-Login a user in from a keytab file irrespective of the last login
time. Loads a user identity from a keytab file and logs them in. They
become the currently logged-in user. This method assumes that
<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#loginUserFromKeytab-java.lang.String-java.lang.String-"><code>loginUserFromKeytab(String, String)</code></a> had happened already. The
Subject field of this UserGroupInformation object is updated to have the
new credentials.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="../../../../org/apache/hadoop/security/KerberosAuthException.html" title="class in org.apache.hadoop.security">KerberosAuthException</a></code> - on a failure</dd>
</dl>
</li>
</ul>
<a name="reloginFromTicketCache--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reloginFromTicketCache</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public&nbsp;void&nbsp;reloginFromTicketCache()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Re-Login a user in from the ticket cache. This
method assumes that login had happened already.
The Subject field of this UserGroupInformation object is updated to have
the new credentials.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="../../../../org/apache/hadoop/security/KerberosAuthException.html" title="class in org.apache.hadoop.security">KerberosAuthException</a></code> - on a failure</dd>
</dl>
</li>
</ul>
<a name="loginUserFromKeytabAndReturnUGI-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loginUserFromKeytabAndReturnUGI</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;loginUserFromKeytabAndReturnUGI(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Log a user in from a keytab file. Loads a user identity from a keytab
file and login them in. This new user does not affect the currently
logged-in user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the principal name to load from the keytab</dd>
<dd><code>path</code> - the path to the keytab file</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if the keytab file can't be read</dd>
</dl>
</li>
</ul>
<a name="isLoginKeytabBased--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLoginKeytabBased</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;boolean&nbsp;isLoginKeytabBased()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Did the login happen via keytab</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true or false</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="isLoginTicketBased--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLoginTicketBased</h4>
<pre>public static&nbsp;boolean&nbsp;isLoginTicketBased()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Did the login happen via ticket cache</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true or false</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="createRemoteUser-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createRemoteUser</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;createRemoteUser(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user)</pre>
<div class="block">Create a user from a login name. It is intended to be used for remote
users in RPC, since it won't have any credentials.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the full user principal name, must not be empty or null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the UserGroupInformation for the remote user.</dd>
</dl>
</li>
</ul>
<a name="createRemoteUser-java.lang.String-org.apache.hadoop.security.SaslRpcServer.AuthMethod-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createRemoteUser</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;createRemoteUser(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="../../../../org/apache/hadoop/security/SaslRpcServer.AuthMethod.html" title="enum in org.apache.hadoop.security">SaslRpcServer.AuthMethod</a>&nbsp;authMethod)</pre>
<div class="block">Create a user from a login name. It is intended to be used for remote
users in RPC, since it won't have any credentials.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the full user principal name, must not be empty or null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the UserGroupInformation for the remote user.</dd>
</dl>
</li>
</ul>
<a name="createProxyUser-java.lang.String-org.apache.hadoop.security.UserGroupInformation-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProxyUser</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;createProxyUser(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;realUser)</pre>
<div class="block">Create a proxy user using username of the effective user and the ugi of the
real user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - </dd>
<dd><code>realUser</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>proxyUser ugi</dd>
</dl>
</li>
</ul>
<a name="getRealUser--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRealUser</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;getRealUser()</pre>
<div class="block">get RealUser (vs. EffectiveUser)</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>realUser running over proxy user</dd>
</dl>
</li>
</ul>
<a name="createUserForTesting-java.lang.String-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createUserForTesting</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;createUserForTesting(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;userGroups)</pre>
<div class="block">Create a UGI for testing HDFS and MapReduce</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the full user principal name</dd>
<dd><code>userGroups</code> - the names of the groups that the user belongs to</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a fake user for running unit tests</dd>
</dl>
</li>
</ul>
<a name="createProxyUserForTesting-java.lang.String-org.apache.hadoop.security.UserGroupInformation-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProxyUserForTesting</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;createProxyUserForTesting(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;realUser,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;userGroups)</pre>
<div class="block">Create a proxy user UGI for testing HDFS and MapReduce</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the full user principal name for effective user</dd>
<dd><code>realUser</code> - UGI of the real user</dd>
<dd><code>userGroups</code> - the names of the groups that the user belongs to</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a fake user for running unit tests</dd>
</dl>
</li>
</ul>
<a name="getShortUserName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getShortUserName</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getShortUserName()</pre>
<div class="block">Get the user's login name.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the user's name up to the first '/' or '@'.</dd>
</dl>
</li>
</ul>
<a name="getPrimaryGroupName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrimaryGroupName</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryGroupName()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getUserName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUserName</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUserName()</pre>
<div class="block">Get the user's full principal name.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the user's full principal name.</dd>
</dl>
</li>
</ul>
<a name="addTokenIdentifier-org.apache.hadoop.security.token.TokenIdentifier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addTokenIdentifier</h4>
<pre>public&nbsp;boolean&nbsp;addTokenIdentifier(<a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&nbsp;tokenId)</pre>
<div class="block">Add a TokenIdentifier to this UGI. The TokenIdentifier has typically been
authenticated by the RPC layer as belonging to the user represented by this
UGI.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tokenId</code> - tokenIdentifier to be added</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true on successful add of new tokenIdentifier</dd>
</dl>
</li>
</ul>
<a name="getTokenIdentifiers--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTokenIdentifiers</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&gt;&nbsp;getTokenIdentifiers()</pre>
<div class="block">Get the set of TokenIdentifiers belonging to this UGI</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the set of TokenIdentifiers belonging to this UGI</dd>
</dl>
</li>
</ul>
<a name="addToken-org.apache.hadoop.security.token.Token-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToken</h4>
<pre>public&nbsp;boolean&nbsp;addToken(<a href="../../../../org/apache/hadoop/security/token/Token.html" title="class in org.apache.hadoop.security.token">Token</a>&lt;? extends <a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&gt;&nbsp;token)</pre>
<div class="block">Add a token to this UGI</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>token</code> - Token to be added</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true on successful add of new token</dd>
</dl>
</li>
</ul>
<a name="addToken-org.apache.hadoop.io.Text-org.apache.hadoop.security.token.Token-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToken</h4>
<pre>public&nbsp;boolean&nbsp;addToken(<a href="../../../../org/apache/hadoop/io/Text.html" title="class in org.apache.hadoop.io">Text</a>&nbsp;alias,
<a href="../../../../org/apache/hadoop/security/token/Token.html" title="class in org.apache.hadoop.security.token">Token</a>&lt;? extends <a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&gt;&nbsp;token)</pre>
<div class="block">Add a named token to this UGI</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>alias</code> - Name of the token</dd>
<dd><code>token</code> - Token to be added</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true on successful add of new token</dd>
</dl>
</li>
</ul>
<a name="getTokens--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTokens</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/hadoop/security/token/Token.html" title="class in org.apache.hadoop.security.token">Token</a>&lt;? extends <a href="../../../../org/apache/hadoop/security/token/TokenIdentifier.html" title="class in org.apache.hadoop.security.token">TokenIdentifier</a>&gt;&gt;&nbsp;getTokens()</pre>
<div class="block">Obtain the collection of tokens associated with this user.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an unmodifiable collection of tokens associated with user</dd>
</dl>
</li>
</ul>
<a name="getCredentials--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCredentials</h4>
<pre>public&nbsp;<a href="../../../../org/apache/hadoop/security/Credentials.html" title="class in org.apache.hadoop.security">Credentials</a>&nbsp;getCredentials()</pre>
<div class="block">Obtain the tokens in credentials form associated with this user.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Credentials of tokens associated with this user</dd>
</dl>
</li>
</ul>
<a name="addCredentials-org.apache.hadoop.security.Credentials-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addCredentials</h4>
<pre>public&nbsp;void&nbsp;addCredentials(<a href="../../../../org/apache/hadoop/security/Credentials.html" title="class in org.apache.hadoop.security">Credentials</a>&nbsp;credentials)</pre>
<div class="block">Add the given Credentials to this user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>credentials</code> - of tokens and secrets</dd>
</dl>
</li>
</ul>
<a name="getGroupNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupNames</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;getGroupNames()</pre>
<div class="block">Get the group names for this user. <a href="../../../../org/apache/hadoop/security/UserGroupInformation.html#getGroups--"><code>getGroups()</code></a> is less
expensive alternative when checking for a contained element.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of users with the primary group first. If the command
fails, it returns an empty list.</dd>
</dl>
</li>
</ul>
<a name="getGroups--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroups</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getGroups()</pre>
<div class="block">Get the group names for this user.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of users with the primary group first. If the command
fails, it returns an empty list.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<div class="block">Return the username.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="setAuthenticationMethod-org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAuthenticationMethod</h4>
<pre>public&nbsp;void&nbsp;setAuthenticationMethod(<a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a>&nbsp;authMethod)</pre>
<div class="block">Sets the authentication method in the subject</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authMethod</code> - </dd>
</dl>
</li>
</ul>
<a name="setAuthenticationMethod-org.apache.hadoop.security.SaslRpcServer.AuthMethod-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAuthenticationMethod</h4>
<pre>public&nbsp;void&nbsp;setAuthenticationMethod(<a href="../../../../org/apache/hadoop/security/SaslRpcServer.AuthMethod.html" title="enum in org.apache.hadoop.security">SaslRpcServer.AuthMethod</a>&nbsp;authMethod)</pre>
<div class="block">Sets the authentication method in the subject</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authMethod</code> - </dd>
</dl>
</li>
</ul>
<a name="getAuthenticationMethod--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAuthenticationMethod</h4>
<pre>public&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a>&nbsp;getAuthenticationMethod()</pre>
<div class="block">Get the authentication method from the subject</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>AuthenticationMethod in the subject, null if not present.</dd>
</dl>
</li>
</ul>
<a name="getRealAuthenticationMethod--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRealAuthenticationMethod</h4>
<pre>public&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a>&nbsp;getRealAuthenticationMethod()</pre>
<div class="block">Get the authentication method from the real user's subject. If there
is no real user, return the given user's authentication method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>AuthenticationMethod in the subject, null if not present.</dd>
</dl>
</li>
</ul>
<a name="getRealAuthenticationMethod-org.apache.hadoop.security.UserGroupInformation-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRealAuthenticationMethod</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security">UserGroupInformation.AuthenticationMethod</a>&nbsp;getRealAuthenticationMethod(<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;ugi)</pre>
<div class="block">Returns the authentication method of a ugi. If the authentication method is
PROXY, returns the authentication method of the real user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ugi</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>AuthenticationMethod</dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
<div class="block">Compare the subjects to see if they are equal to each other.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Return the hash of the subject.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="getSubject--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubject</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;getSubject()</pre>
<div class="block">Get the underlying subject from this ugi.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the subject that represents this user.</dd>
</dl>
</li>
</ul>
<a name="doAs-java.security.PrivilegedAction-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doAs</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public&nbsp;&lt;T&gt;&nbsp;T&nbsp;doAs(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/PrivilegedAction.html?is-external=true" title="class or interface in java.security">PrivilegedAction</a>&lt;T&gt;&nbsp;action)</pre>
<div class="block">Run the given action as the user.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the return type of the run method</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>action</code> - the method to execute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value from the run method</dd>
</dl>
</li>
</ul>
<a name="doAs-java.security.PrivilegedExceptionAction-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doAs</h4>
<pre>@InterfaceAudience.Public
@InterfaceStability.Evolving
public&nbsp;&lt;T&gt;&nbsp;T&nbsp;doAs(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/PrivilegedExceptionAction.html?is-external=true" title="class or interface in java.security">PrivilegedExceptionAction</a>&lt;T&gt;&nbsp;action)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Run the given action as the user, potentially throwing an exception.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the return type of the run method</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>action</code> - the method to execute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value from the run method</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if the action throws an IOException</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Error.html?is-external=true" title="class or interface in java.lang">Error</a></code> - if the action throws an Error</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a></code> - if the action throws a RuntimeException</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code> - if the action throws an InterruptedException</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/UndeclaredThrowableException.html?is-external=true" title="class or interface in java.lang.reflect">UndeclaredThrowableException</a></code> - if the action throws something else</dd>
</dl>
</li>
</ul>
<a name="logAllUserInfo-org.apache.hadoop.security.UserGroupInformation-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logAllUserInfo</h4>
<pre>public static&nbsp;void&nbsp;logAllUserInfo(<a href="../../../../org/apache/hadoop/security/UserGroupInformation.html" title="class in org.apache.hadoop.security">UserGroupInformation</a>&nbsp;ugi)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Log all (current, real, login) UGI and token info into UGI debug log.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ugi</code> - - UGI</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="main-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;main(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">A test method to print out the current user's UGI.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>args</code> - if there are two arguments, read the user from the keytab
and print it out.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/UserGroupInformation.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/hadoop/security/ShellBasedIdMapping.html" title="class in org.apache.hadoop.security"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html" title="enum in org.apache.hadoop.security"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/hadoop/security/UserGroupInformation.html" target="_top">Frames</a></li>
<li><a href="UserGroupInformation.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>