blob: bf29fad2684de2575858aa75c52624803d458771 [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 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SaslClientAuthenticationProvider (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<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="SaslClientAuthenticationProvider (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":18,"i1":6,"i2":18,"i3":6,"i4":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default 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/SaslClientAuthenticationProvider.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/hbase/security/provider/SaslAuthMethod.html" title="class in org.apache.hadoop.hbase.security.provider"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.html" title="class in org.apache.hadoop.hbase.security.provider"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html" target="_top">Frames</a></li>
<li><a href="SaslClientAuthenticationProvider.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>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&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.hbase.security.provider</div>
<h2 title="Interface SaslClientAuthenticationProvider" class="title">Interface SaslClientAuthenticationProvider</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslAuthenticationProvider.html" title="interface in org.apache.hadoop.hbase.security.provider">SaslAuthenticationProvider</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/security/provider/AbstractSaslClientAuthenticationProvider.html" title="class in org.apache.hadoop.hbase.security.provider">AbstractSaslClientAuthenticationProvider</a>, <a href="../../../../../../org/apache/hadoop/hbase/security/provider/DigestSaslClientAuthenticationProvider.html" title="class in org.apache.hadoop.hbase.security.provider">DigestSaslClientAuthenticationProvider</a>, <a href="../../../../../../org/apache/hadoop/hbase/security/provider/GssSaslClientAuthenticationProvider.html" title="class in org.apache.hadoop.hbase.security.provider">GssSaslClientAuthenticationProvider</a>, <a href="../../../../../../org/apache/hadoop/hbase/security/provider/example/ShadeSaslClientAuthenticationProvider.html" title="class in org.apache.hadoop.hbase.security.provider.example">ShadeSaslClientAuthenticationProvider</a>, <a href="../../../../../../org/apache/hadoop/hbase/security/provider/SimpleSaslClientAuthenticationProvider.html" title="class in org.apache.hadoop.hbase.security.provider">SimpleSaslClientAuthenticationProvider</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.LimitedPrivate(value="Authentication")
@InterfaceStability.Evolving
public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#line.48">SaslClientAuthenticationProvider</a>
extends <a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslAuthenticationProvider.html" title="interface in org.apache.hadoop.hbase.security.provider">SaslAuthenticationProvider</a></pre>
<div class="block">Encapsulation of client-side logic to authenticate to HBase via some means over SASL.
Implementations should not directly implement this interface, but instead extend
<a href="../../../../../../org/apache/hadoop/hbase/security/provider/AbstractSaslClientAuthenticationProvider.html" title="class in org.apache.hadoop.hbase.security.provider"><code>AbstractSaslClientAuthenticationProvider</code></a>.
Implementations of this interface must make an implementation of <code>hashCode()</code>
which returns the same value across multiple instances of the provider implementation.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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>default boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#canRetry--">canRetry</a></span>()</code>
<div class="block">Returns true if the implementation is capable of performing some action which may allow a
failed authentication to become a successful authentication.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#createClient-org.apache.hadoop.conf.Configuration-java.net.InetAddress-org.apache.hadoop.hbase.security.SecurityInfo-org.apache.hadoop.security.token.Token-boolean-java.util.Map-">createClient</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;serverAddr,
<a href="../../../../../../org/apache/hadoop/hbase/security/SecurityInfo.html" title="class in org.apache.hadoop.hbase.security">SecurityInfo</a>&nbsp;securityInfo,
org.apache.hadoop.security.token.Token&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;token,
boolean&nbsp;fallbackAllowed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</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>,<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;saslProps)</code>
<div class="block">Creates the SASL client instance for this auth'n method.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>default org.apache.hadoop.security.UserGroupInformation</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#getRealUser-org.apache.hadoop.hbase.security.User-">getRealUser</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;ugi)</code>
<div class="block">Returns the "real" user, the user who has the credentials being authenticated by the
remote service, in the form of an <code>UserGroupInformation</code> object.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.UserInformation</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#getUserInfo-org.apache.hadoop.hbase.security.User-">getUserInfo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>
<div class="block">Constructs a <code>RPCProtos.UserInformation</code> from the given <code>UserGroupInformation</code></div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#relogin--">relogin</a></span>()</code>
<div class="block">Executes any necessary logic to re-login the client.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.security.provider.SaslAuthenticationProvider">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.security.provider.<a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslAuthenticationProvider.html" title="interface in org.apache.hadoop.hbase.security.provider">SaslAuthenticationProvider</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslAuthenticationProvider.html#getSaslAuthMethod--">getSaslAuthMethod</a>, <a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslAuthenticationProvider.html#getTokenKind--">getTokenKind</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="createClient-org.apache.hadoop.conf.Configuration-java.net.InetAddress-org.apache.hadoop.hbase.security.SecurityInfo-org.apache.hadoop.security.token.Token-boolean-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createClient</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/SaslClient.html?is-external=true" title="class or interface in javax.security.sasl">SaslClient</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#line.53">createClient</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;serverAddr,
<a href="../../../../../../org/apache/hadoop/hbase/security/SecurityInfo.html" title="class in org.apache.hadoop.hbase.security">SecurityInfo</a>&nbsp;securityInfo,
org.apache.hadoop.security.token.Token&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;token,
boolean&nbsp;fallbackAllowed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</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>,<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;saslProps)
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">Creates the SASL client instance for this auth'n method.</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>
</dl>
</li>
</ul>
<a name="getUserInfo-org.apache.hadoop.hbase.security.User-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUserInfo</h4>
<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.UserInformation&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#line.60">getUserInfo</a>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
<div class="block">Constructs a <code>RPCProtos.UserInformation</code> from the given <code>UserGroupInformation</code></div>
</li>
</ul>
<a name="getRealUser-org.apache.hadoop.hbase.security.User-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRealUser</h4>
<pre>default&nbsp;org.apache.hadoop.security.UserGroupInformation&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#line.76">getRealUser</a>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;ugi)</pre>
<div class="block">Returns the "real" user, the user who has the credentials being authenticated by the
remote service, in the form of an <code>UserGroupInformation</code> object.
It is common in the Hadoop "world" to have distinct notions of a "real" user and a "proxy"
user. A "real" user is the user which actually has the credentials (often, a Kerberos ticket),
but some code may be running as some other user who has no credentials. This method gives
the authentication provider a chance to acknowledge this is happening and ensure that any
RPCs are executed with the real user's credentials, because executing them as the proxy user
would result in failure because no credentials exist to authenticate the RPC.
Not all implementations will need to implement this method. By default, the provided User's
UGI is returned directly.</div>
</li>
</ul>
<a name="canRetry--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canRetry</h4>
<pre>default&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#line.84">canRetry</a>()</pre>
<div class="block">Returns true if the implementation is capable of performing some action which may allow a
failed authentication to become a successful authentication. Otherwise, returns false</div>
</li>
</ul>
<a name="relogin--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>relogin</h4>
<pre>default&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html#line.92">relogin</a>()
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">Executes any necessary logic to re-login the client. Not all implementations will have
any logic that needs to be executed.</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>
</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/SaslClientAuthenticationProvider.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/hbase/security/provider/SaslAuthMethod.html" title="class in org.apache.hadoop.hbase.security.provider"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.html" title="class in org.apache.hadoop.hbase.security.provider"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProvider.html" target="_top">Frames</a></li>
<li><a href="SaslClientAuthenticationProvider.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>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&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; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>