blob: 5be07190500bc2bc1b065f28629e8c98e8ab0985 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SaslClientContext (Qpid ProtonJ2 Parent 1.0.0-M9 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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="SaslClientContext (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SaslClientContext.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="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.engine.sasl</a></div>
<h2 title="Interface SaslClientContext" class="title">Interface SaslClientContext</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslContext</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">SaslClientContext</span>
extends <a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslContext</a></pre>
<div class="block">SASL Client operating context used by an <a href="../Engine.html" title="interface in org.apache.qpid.protonj2.engine"><code>Engine</code></a> that has been
configured as a SASL client or that has initialed the SASL exchange by
being the first to initiate the AMQP header exchange.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.qpid.protonj2.engine.sasl.SaslContext">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.qpid.protonj2.engine.sasl.<a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslContext</a></h3>
<code><a href="SaslContext.Role.html" title="enum in org.apache.qpid.protonj2.engine.sasl">SaslContext.Role</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientListener</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getListener()">getListener</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#saslFailure(javax.security.sasl.SaslException)">saslFailure</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.security.sasl/javax/security/sasl/SaslException.html?is-external=true" title="class or interface in javax.security.sasl" class="externalLink">SaslException</a>&nbsp;failure)</code></th>
<td class="colLast">
<div class="block">Allows the client implementation to fail the SASL negotiation process due to some
unrecoverable error.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendChosenMechanism(org.apache.qpid.protonj2.types.Symbol,java.lang.String,org.apache.qpid.protonj2.buffer.ProtonBuffer)">sendChosenMechanism</a></span>&#8203;(<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&nbsp;mechanism,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;host,
<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;initialResponse)</code></th>
<td class="colLast">
<div class="block">Sends a response to the SASL server indicating the chosen mechanism for this
client and the host name that this client is identifying itself as.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendResponse(org.apache.qpid.protonj2.buffer.ProtonBuffer)">sendResponse</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;response)</code></th>
<td class="colLast">
<div class="block">Sends a response to a server side challenge that comprises the challenge / response
exchange for the chosen SASL mechanism.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendSASLHeader()">sendSASLHeader</a></span>()</code></th>
<td class="colLast">
<div class="block">Sends the AMQP Header indicating the desire for SASL negotiations to be commenced on
this connection.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setListener(org.apache.qpid.protonj2.engine.sasl.SaslClientListener)">setListener</a></span>&#8203;(<a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslClientListener</code></a> that will be used to driver the client side SASL
negotiations with a connected "server".</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.qpid.protonj2.engine.sasl.SaslContext">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.qpid.protonj2.engine.sasl.<a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslContext</a></h3>
<code><a href="SaslContext.html#getAttachments()">getAttachments</a>, <a href="SaslContext.html#getChosenMechanism()">getChosenMechanism</a>, <a href="SaslContext.html#getHostname()">getHostname</a>, <a href="SaslContext.html#getRole()">getRole</a>, <a href="SaslContext.html#getSaslOutcome()">getSaslOutcome</a>, <a href="SaslContext.html#getSaslState()">getSaslState</a>, <a href="SaslContext.html#getServerMechanisms()">getServerMechanisms</a>, <a href="SaslContext.html#isClient()">isClient</a>, <a href="SaslContext.html#isDone()">isDone</a>, <a href="SaslContext.html#isServer()">isServer</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setListener(org.apache.qpid.protonj2.engine.sasl.SaslClientListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setListener</h4>
<pre class="methodSignature"><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a>&nbsp;setListener&#8203;(<a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientListener</a>&nbsp;listener)</pre>
<div class="block">Sets the <a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslClientListener</code></a> that will be used to driver the client side SASL
negotiations with a connected "server". As the server initiates or responds to the
various phases of the SASL negotiation the <a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslClientListener</code></a> will be notified
and allowed to respond.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The <a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslClientListener</code></a> to use for SASL negotiations, cannot be null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this client context.</dd>
</dl>
</li>
</ul>
<a id="getListener()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getListener</h4>
<pre class="methodSignature"><a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientListener</a>&nbsp;getListener()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the currently set <a href="SaslClientListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslClientListener</code></a> instance.</dd>
</dl>
</li>
</ul>
<a id="sendSASLHeader()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendSASLHeader</h4>
<pre class="methodSignature"><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a>&nbsp;sendSASLHeader()
throws <a href="../exceptions/EngineStateException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineStateException</a></pre>
<div class="block">Sends the AMQP Header indicating the desire for SASL negotiations to be commenced on
this connection. The hosting application my wish to start SASL negotiations prior to
opening a <a href="../Connection.html" title="interface in org.apache.qpid.protonj2.engine"><code>Connection</code></a> in order to validation authentication state out of band
of the normal open process.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this client context.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../exceptions/EngineStateException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineStateException</a></code> - if the <a href="../Engine.html" title="interface in org.apache.qpid.protonj2.engine"><code>Engine</code></a> has been shut down or a failure occurs processing this header.</dd>
</dl>
</li>
</ul>
<a id="sendChosenMechanism(org.apache.qpid.protonj2.types.Symbol,java.lang.String,org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendChosenMechanism</h4>
<pre class="methodSignature"><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a>&nbsp;sendChosenMechanism&#8203;(<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&nbsp;mechanism,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;host,
<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;initialResponse)
throws <a href="../exceptions/EngineStateException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineStateException</a></pre>
<div class="block">Sends a response to the SASL server indicating the chosen mechanism for this
client and the host name that this client is identifying itself as.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mechanism</code> - The chosen mechanism selected from the list the server provided.</dd>
<dd><code>host</code> - The host name that the client is identified as or null if none selected.</dd>
<dd><code>initialResponse</code> - The initial response data sent as defined by the chosen mechanism or null if none required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this client context.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../exceptions/EngineStateException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineStateException</a></code> - if the <a href="../Engine.html" title="interface in org.apache.qpid.protonj2.engine"><code>Engine</code></a> has been shut down or a failure occurs processing this mechanism.</dd>
</dl>
</li>
</ul>
<a id="sendResponse(org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendResponse</h4>
<pre class="methodSignature"><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a>&nbsp;sendResponse&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;response)
throws <a href="../exceptions/EngineStateException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineStateException</a></pre>
<div class="block">Sends a response to a server side challenge that comprises the challenge / response
exchange for the chosen SASL mechanism.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>response</code> - The response bytes to be sent to the server for this cycle.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this client context.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../exceptions/EngineStateException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineStateException</a></code> - if the <a href="../Engine.html" title="interface in org.apache.qpid.protonj2.engine"><code>Engine</code></a> has been shut down or a failure occurs processing this response.</dd>
</dl>
</li>
</ul>
<a id="saslFailure(javax.security.sasl.SaslException)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>saslFailure</h4>
<pre class="methodSignature"><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a>&nbsp;saslFailure&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.security.sasl/javax/security/sasl/SaslException.html?is-external=true" title="class or interface in javax.security.sasl" class="externalLink">SaslException</a>&nbsp;failure)</pre>
<div class="block">Allows the client implementation to fail the SASL negotiation process due to some
unrecoverable error. Failing the process will signal the engine that the SASL process
has failed and place the engine in a failed state as well as notify the registered error
handler for the <a href="../Engine.html" title="interface in org.apache.qpid.protonj2.engine"><code>Engine</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>failure</code> - The exception to report to the <a href="../Engine.html" title="interface in org.apache.qpid.protonj2.engine"><code>Engine</code></a> that describes the failure.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this client context.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SaslClientContext.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="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>