blob: bd0382d9705cb16a8553071848918c75ef30aacf [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>EngineSaslDriver (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, interface: EngineSaslDriver">
<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/EngineSaslDriver.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</a></div>
<h1 title="Interface EngineSaslDriver" class="title">Interface EngineSaslDriver</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ProtonEngineNoOpSaslDriver.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonEngineNoOpSaslDriver</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">EngineSaslDriver</span></div>
<div class="block">Driver for the Engine that exposes SASL state and configuration.
<p>
When configured for SASL authentication the SASL driver provides a view of the
current state of the authentication and allows for configuration of the SASL layer
prior to the start of the authentication process. Once authentication is complete
the driver provides a means of determining the outcome of process.</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="EngineSaslDriver.SaslState.html" class="type-name-link" title="enum in org.apache.qpid.protonj2.engine">EngineSaslDriver.SaslState</a></code></div>
<div class="col-last even-row-color">
<div class="block">The SASL driver state used to determine at what point the current SASL negotiation process
is currently in.</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></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="sasl/SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#client()" class="member-name-link">client</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Configure this <a href="EngineSaslDriver.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineSaslDriver</code></a> to operate in client mode and return the associated
<a href="sasl/SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslClientContext</code></a> instance that should be used to complete the SASL negotiation
with the server end.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getMaxFrameSize()" class="member-name-link">getMaxFrameSize</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><a href="sasl/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 disabled state.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="sasl/SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#server()" class="member-name-link">server</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Configure this <a href="EngineSaslDriver.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineSaslDriver</code></a> to operate in server mode and return the associated
<a href="sasl/SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslServerContext</code></a> instance that should be used to complete the SASL negotiation
with the client end.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setMaxFrameSize(int)" class="member-name-link">setMaxFrameSize</a><wbr>(int&nbsp;maxFrameSize)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Set the maximum frame size the remote can send before an error is indicated.</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="client()">
<h3>client</h3>
<div class="member-signature"><span class="return-type"><a href="sasl/SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslClientContext</a></span>&nbsp;<span class="element-name">client</span>()</div>
<div class="block">Configure this <a href="EngineSaslDriver.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineSaslDriver</code></a> to operate in client mode and return the associated
<a href="sasl/SaslClientContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslClientContext</code></a> instance that should be used to complete the SASL negotiation
with the server end.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the SASL client context.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if the engine is already in server mode or the engine has not
been configure with SASL support.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="server()">
<h3>server</h3>
<div class="member-signature"><span class="return-type"><a href="sasl/SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl">SaslServerContext</a></span>&nbsp;<span class="element-name">server</span>()</div>
<div class="block">Configure this <a href="EngineSaslDriver.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineSaslDriver</code></a> to operate in server mode and return the associated
<a href="sasl/SaslServerContext.html" title="interface in org.apache.qpid.protonj2.engine.sasl"><code>SaslServerContext</code></a> instance that should be used to complete the SASL negotiation
with the client end.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the SASL server context.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if the engine is already in client mode or the engine has not
been configure with SASL support.</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 disabled 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="getSaslOutcome()">
<h3>getSaslOutcome</h3>
<div class="member-signature"><span class="return-type"><a href="sasl/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="getMaxFrameSize()">
<h3>getMaxFrameSize</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getMaxFrameSize</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the currently configured max frame size allowed for SASL frames.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setMaxFrameSize(int)">
<h3>setMaxFrameSize</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setMaxFrameSize</span><wbr><span class="parameters">(int&nbsp;maxFrameSize)</span></div>
<div class="block">Set the maximum frame size the remote can send before an error is indicated.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>maxFrameSize</code> - The maximum allowed frame size from the remote sender.</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>