blob: 54434ff16f7790521f98b850d498b8dc3fa6f164 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>SaslContext (Qpid ProtonJ2 Parent 1.0.0-M18 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.qpid.protonj2.engine.sasl, interface: SaslContext">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/SaslContext.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.engine.sasl</a></div>
<h1 title="Interface SaslContext" class="title">Interface SaslContext</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a></code>, <code><a href="SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">SaslContext</span></div>
<div class="block">The basic SASL context APIs common to both client and server sides of the SASL exchange.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Interface</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static enum&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="SaslContext.Role.html" class="type-name-link" title="enum in org.apache.qpid.protonj2.engine.sasl">SaslContext.Role</a></code></div>
<div class="col-last even-row-color">
<div class="block">Indicates the role that this SASL context plays either server or client.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../Attachments.html" title="interface in org.apache.qpid.protonj2.engine">Attachments</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getAttachments()" class="member-name-link">getAttachments</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns a mutable context that the application layer can use to store meaningful data for itself
in relation to this specific SASL context object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getChosenMechanism()" class="member-name-link">getChosenMechanism</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the mechanism that was sent to the server to select the SASL mechanism
to use for negotiations.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getHostname()" class="member-name-link">getHostname</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">The DNS name of the host (either fully qualified or relative) that was sent to the server
which define the host the sending peer is connecting to.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>&lt;T&gt;&nbsp;T</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getLinkedResource()" class="member-name-link">getLinkedResource</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>&lt;T&gt;&nbsp;T</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getLinkedResource(java.lang.Class)" class="member-name-link">getLinkedResource</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;typeClass)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the linked resource (if set) and returns it using the type information
provided to cast the returned value.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="SaslContext.Role.html" title="enum in org.apache.qpid.protonj2.engine.sasl">SaslContext.Role</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getRole()" class="member-name-link">getRole</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Return the Role of the context implementation.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="SaslOutcome.html" title="enum in org.apache.qpid.protonj2.engine.sasl">SaslOutcome</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getSaslOutcome()" class="member-name-link">getSaslOutcome</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Provides a low level outcome value for the SASL authentication process.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../EngineSaslDriver.SaslState.html" title="enum in org.apache.qpid.protonj2.engine">EngineSaslDriver.SaslState</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getSaslState()" class="member-name-link">getSaslState</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns a SaslState that indicates the current operating state of the SASL
negotiation process or conversely if no SASL layer is configured this method
should return the no-SASL state.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>[]</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getServerMechanisms()" class="member-name-link">getServerMechanisms</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">After the server has sent its supported mechanisms this method will return a
copy of that list for review by the server event handler.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#isClient()" class="member-name-link">isClient</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isDone()" class="member-name-link">isDone</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#isServer()" class="member-name-link">isServer</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setLinkedResource(java.lang.Object)" class="member-name-link">setLinkedResource</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;resource)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Links a given resource to this <a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslContext</code></a>.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="setLinkedResource(java.lang.Object)">
<h3>setLinkedResource</h3>
<div class="member-signature"><span class="return-type"><a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslContext</a></span>&nbsp;<span class="element-name">setLinkedResource</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;resource)</span></div>
<div class="block">Links a given resource to this <a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslContext</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>resource</code> - The resource to link to this <a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslContext</code></a>.</dd>
<dt>Returns:</dt>
<dd>this <a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslContext</code></a> instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLinkedResource()">
<h3>getLinkedResource</h3>
<div class="member-signature"><span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">T</span>&nbsp;<span class="element-name">getLinkedResource</span>()</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - The type that the linked resource should be cast to on return.</dd>
<dt>Returns:</dt>
<dd>the user set linked resource for this <a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslContext</code></a> instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLinkedResource(java.lang.Class)">
<h3>getLinkedResource</h3>
<div class="member-signature"><span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">T</span>&nbsp;<span class="element-name">getLinkedResource</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;typeClass)</span></div>
<div class="block">Gets the linked resource (if set) and returns it using the type information
provided to cast the returned value.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - The type to cast the linked resource to if one is set.</dd>
<dt>Parameters:</dt>
<dd><code>typeClass</code> - the type's Class which is used for casting the returned value.</dd>
<dt>Returns:</dt>
<dd>the user set linked resource for this Context instance.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ClassCastException.html" title="class or interface in java.lang" class="external-link">ClassCastException</a></code> - if the linked resource cannot be cast to the type requested.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAttachments()">
<h3>getAttachments</h3>
<div class="member-signature"><span class="return-type"><a href="../Attachments.html" title="interface in org.apache.qpid.protonj2.engine">Attachments</a></span>&nbsp;<span class="element-name">getAttachments</span>()</div>
<div class="block">Returns a mutable context that the application layer can use to store meaningful data for itself
in relation to this specific SASL context object.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the <a href="../Attachments.html" title="interface in org.apache.qpid.protonj2.engine"><code>Attachments</code></a> instance that is associated with this <a href="SaslContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslContext</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getRole()">
<h3>getRole</h3>
<div class="member-signature"><span class="return-type"><a href="SaslContext.Role.html" title="enum in org.apache.qpid.protonj2.engine.sasl">SaslContext.Role</a></span>&nbsp;<span class="element-name">getRole</span>()</div>
<div class="block">Return the Role of the context implementation.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the Role of this SASL Context</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isDone()">
<h3>isDone</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isDone</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if SASL authentication has completed</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isServer()">
<h3>isServer</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isServer</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if this is a SASL server context.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isClient()">
<h3>isClient</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isClient</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if this is a SASL client context.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSaslOutcome()">
<h3>getSaslOutcome</h3>
<div class="member-signature"><span class="return-type"><a href="SaslOutcome.html" title="enum in org.apache.qpid.protonj2.engine.sasl">SaslOutcome</a></span>&nbsp;<span class="element-name">getSaslOutcome</span>()</div>
<div class="block">Provides a low level outcome value for the SASL authentication process.
<p>
If the SASL exchange is ongoing or the SASL layer was skipped because a
particular engine configuration allows such behavior then this method
should return null to indicate no SASL outcome is available.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the SASL outcome code that results from authentication</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSaslState()">
<h3>getSaslState</h3>
<div class="member-signature"><span class="return-type"><a href="../EngineSaslDriver.SaslState.html" title="enum in org.apache.qpid.protonj2.engine">EngineSaslDriver.SaslState</a></span>&nbsp;<span class="element-name">getSaslState</span>()</div>
<div class="block">Returns a SaslState that indicates the current operating state of the SASL
negotiation process or conversely if no SASL layer is configured this method
should return the no-SASL state. This method must never return a null result.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the current state of SASL Authentication.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getServerMechanisms()">
<h3>getServerMechanisms</h3>
<div class="member-signature"><span class="return-type"><a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>[]</span>&nbsp;<span class="element-name">getServerMechanisms</span>()</div>
<div class="block">After the server has sent its supported mechanisms this method will return a
copy of that list for review by the server event handler. If called before
the server has sent the mechanisms list this method will return null.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the mechanisms that the server offered to the client.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getChosenMechanism()">
<h3>getChosenMechanism</h3>
<div class="member-signature"><span class="return-type"><a href="../../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a></span>&nbsp;<span class="element-name">getChosenMechanism</span>()</div>
<div class="block">Returns the mechanism that was sent to the server to select the SASL mechanism
to use for negotiations. If called before the client has sent its chosen mechanism
this method returns null.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the SASL mechanism that the client selected to use for negotiation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getHostname()">
<h3>getHostname</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getHostname</span>()</div>
<div class="block">The DNS name of the host (either fully qualified or relative) that was sent to the server
which define the host the sending peer is connecting to. If called before the client sent
the host name information to the server this method returns null.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the host name the client has requested to connect to.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>