blob: 90db2f46c391e60beb17e8b4c88d80e917d99742 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SaslServerContext (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="SaslServerContext (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/SaslServerContext.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 SaslServerContext" class="title">Interface SaslServerContext</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">SaslServerContext</span>
extends <a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslContext</a></pre>
<div class="block">SASL Server 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 server or that has receiver an AMQP header thereby
forcing it into becoming the server side of the SASL 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="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerListener</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="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</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 server 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="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendChallenge(org.apache.qpid.protonj2.buffer.ProtonBuffer)">sendChallenge</a></span>&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;challenge)</code></th>
<td class="colLast">
<div class="block">Sends the SASL challenge defined by the SASL mechanism that is in use during
this SASL negotiation.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendMechanisms(org.apache.qpid.protonj2.types.Symbol%5B%5D)">sendMechanisms</a></span>&#8203;(<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>[]&nbsp;mechanisms)</code></th>
<td class="colLast">
<div class="block">Sends the set of supported mechanisms to the SASL client from which it must
choose and return one mechanism which will then be the basis for the SASL
authentication negotiation.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendOutcome(org.apache.qpid.protonj2.engine.sasl.SaslOutcome,org.apache.qpid.protonj2.buffer.ProtonBuffer)">sendOutcome</a></span>&#8203;(<a href="SaslOutcome.html" title="enum in org.apache.qpid.protonj2.engine.sasl">SaslOutcome</a>&nbsp;outcome,
<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;additional)</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="i5" class="rowColor">
<td class="colFirst"><code><a href="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setListener(org.apache.qpid.protonj2.engine.sasl.SaslServerListener)">setListener</a></span>&#8203;(<a href="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslServerListener</code></a> that will be used to driver the server side SASL
negotiations with a connected "client".</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.SaslServerListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setListener</h4>
<pre class="methodSignature"><a href="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a>&nbsp;setListener&#8203;(<a href="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerListener</a>&nbsp;listener)</pre>
<div class="block">Sets the <a href="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslServerListener</code></a> that will be used to driver the server side SASL
negotiations with a connected "client". As the client initiates or responds to the
various phases of the SASL negotiation the <a href="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslServerListener</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="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslServerListener</code></a> to use for SASL negotiations, cannot be null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this server context.</dd>
</dl>
</li>
</ul>
<a id="getListener()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getListener</h4>
<pre class="methodSignature"><a href="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerListener</a>&nbsp;getListener()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the currently set <a href="SaslServerListener.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslServerListener</code></a> instance.</dd>
</dl>
</li>
</ul>
<a id="sendMechanisms(org.apache.qpid.protonj2.types.Symbol[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendMechanisms</h4>
<pre class="methodSignature"><a href="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a>&nbsp;sendMechanisms&#8203;(<a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>[]&nbsp;mechanisms)
throws <a href="../exceptions/EngineStateException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineStateException</a></pre>
<div class="block">Sends the set of supported mechanisms to the SASL client from which it must
choose and return one mechanism which will then be the basis for the SASL
authentication negotiation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mechanisms</code> - The mechanisms that this server supports.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this server 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 engine has already shutdown or failed while processing the mechanisms.</dd>
</dl>
</li>
</ul>
<a id="sendChallenge(org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendChallenge</h4>
<pre class="methodSignature"><a href="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a>&nbsp;sendChallenge&#8203;(<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;challenge)
throws <a href="../exceptions/EngineStateException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineStateException</a></pre>
<div class="block">Sends the SASL challenge defined by the SASL mechanism that is in use during
this SASL negotiation. The challenge is an opaque binary that is provided to
the server by the security mechanism.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>challenge</code> - The buffer containing the server challenge.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this server 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 engine has already shutdown or failed while sending the challenge.</dd>
</dl>
</li>
</ul>
<a id="sendOutcome(org.apache.qpid.protonj2.engine.sasl.SaslOutcome,org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendOutcome</h4>
<pre class="methodSignature"><a href="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a>&nbsp;sendOutcome&#8203;(<a href="SaslOutcome.html" title="enum in org.apache.qpid.protonj2.engine.sasl">SaslOutcome</a>&nbsp;outcome,
<a href="../../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;additional)
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>outcome</code> - The outcome of the SASL negotiation to be sent to the client.</dd>
<dd><code>additional</code> - The additional bytes to be sent from the server along with the outcome.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this server 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 engine has already shutdown or failed while processing the outcome.</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="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</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 server implementation to fail the SASL negotiation process due to some
unrecoverable error. Failing the process will signal the <a href="../Engine.html" title="interface in org.apache.qpid.protonj2.engine"><code>Engine</code></a> 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 server 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/SaslServerContext.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>