blob: 23016cbb42691e924316d9362883b9ff3e907bd9 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Proton DotNet: Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Proton DotNet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceApache.html">Apache</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid.html">Qpid</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine.html">Engine</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation.html">Implementation</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl.html">Sasl</a></li><li class="navelem"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html">ProtonDefaultSaslClientAuthenticator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A <a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> default SASL client authenticator which only supports remote SASL exchanges where the ANONYMOUS mechanism is an published option.
<a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator:</div>
<div class="dyncontent">
<div class="center">
<img src="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.png" usemap="#Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator_map" alt=""/>
<map id="Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator_map" name="Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator_map">
<area href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html" title="Listener for SASL frame arrival to facilitate relevant handling for the SASL authentication of the cl..." alt="Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator" shape="rect" coords="0,0,497,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aaac6e79b02334007b2f69207242b0077"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#aaac6e79b02334007b2f69207242b0077">HandleSaslChallenge</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a> context, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> challenge)</td></tr>
<tr class="memdesc:aaac6e79b02334007b2f69207242b0077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a SASL challenge frame has arrived and its effect applied, indicating the challenge sent by the 'server' peer. The client should respond to the mechanisms event by creating a response buffer and sending it using the context API either immediately or later but using the same thread context as this event arrived in. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#aaac6e79b02334007b2f69207242b0077">More...</a><br /></td></tr>
<tr class="separator:aaac6e79b02334007b2f69207242b0077"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87fd0f2369cdac936510589f167259e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#a87fd0f2369cdac936510589f167259e8">HandleSaslMechanisms</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Types_1_1Symbol.html">Symbol</a>[] mechanisms)</td></tr>
<tr class="memdesc:a87fd0f2369cdac936510589f167259e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a SASL mechanisms frame has arrived and its effect applied, indicating the offered mechanisms sent by the 'server' peer. The client should respond to the mechanisms event by selecting one from the offered list and use the provided client context to send the chosen mechanism back to the remote server. The caller should ensure that the call to send the chosen mechanism occurs in the same thread as that of this handler call. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#a87fd0f2369cdac936510589f167259e8">More...</a><br /></td></tr>
<tr class="separator:a87fd0f2369cdac936510589f167259e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8ffad6216e5405f91cb103464815021"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#ad8ffad6216e5405f91cb103464815021">HandleSaslOutcome</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a> context, <a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html#a007ac2ee5719c195cd362bfa2aec1b3a">SaslAuthOutcome</a> outcome, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> additional)</td></tr>
<tr class="memdesc:ad8ffad6216e5405f91cb103464815021"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a SASL outcome frame has arrived and its effect applied, indicating the outcome and any success additional data sent by the 'server' peer. The client can consider the SASL negotiations complete following this event. The client should respond appropriately to the outcome whose state can indicate that negotiations have failed and the server has not authenticated the client. <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#ad8ffad6216e5405f91cb103464815021">More...</a><br /></td></tr>
<tr class="separator:ad8ffad6216e5405f91cb103464815021"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator</a></td></tr>
<tr class="memitem:a3c3b4836daa7b2e8477e1c6551e47ed8 inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#a3c3b4836daa7b2e8477e1c6551e47ed8">Initialize</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a> context)</td></tr>
<tr class="memdesc:a3c3b4836daa7b2e8477e1c6551e47ed8 inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called before SASL authentication begins to give the application code a clear point to initialize all the client side expectations. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#a3c3b4836daa7b2e8477e1c6551e47ed8">More...</a><br /></td></tr>
<tr class="separator:a3c3b4836daa7b2e8477e1c6551e47ed8 inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a790bba6aafe0fbb966983a1aa995828c"><td class="memItemLeft" align="right" valign="top"><a id="a790bba6aafe0fbb966983a1aa995828c"></a>
static readonly <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html">ProtonDefaultSaslClientAuthenticator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Instance</b> = new()</td></tr>
<tr class="separator:a790bba6aafe0fbb966983a1aa995828c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A <a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> default SASL client authenticator which only supports remote SASL exchanges where the ANONYMOUS mechanism is an published option. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aaac6e79b02334007b2f69207242b0077"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaac6e79b02334007b2f69207242b0077">&#9670;&nbsp;</a></span>HandleSaslChallenge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator.HandleSaslChallenge </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td>
<td class="paramname"><em>challenge</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when a SASL challenge frame has arrived and its effect applied, indicating the challenge sent by the 'server' peer. The client should respond to the mechanisms event by creating a response buffer and sending it using the context API either immediately or later but using the same thread context as this event arrived in. </p>
<p>In the event that the client cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl client context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The client context handling the SASL exchange</td></tr>
<tr><td class="paramname">challenge</td><td>The challenge bytes sent from the server</td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#af7793c4ad3c9552f813e337797c953b5">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator</a>.</p>
</div>
</div>
<a id="a87fd0f2369cdac936510589f167259e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87fd0f2369cdac936510589f167259e8">&#9670;&nbsp;</a></span>HandleSaslMechanisms()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator.HandleSaslMechanisms </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Types_1_1Symbol.html">Symbol</a>[]&#160;</td>
<td class="paramname"><em>mechanisms</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when a SASL mechanisms frame has arrived and its effect applied, indicating the offered mechanisms sent by the 'server' peer. The client should respond to the mechanisms event by selecting one from the offered list and use the provided client context to send the chosen mechanism back to the remote server. The caller should ensure that the call to send the chosen mechanism occurs in the same thread as that of this handler call. </p>
<p>In the event that the client cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl client context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The client context handling the SASL exchange</td></tr>
<tr><td class="paramname">mechanisms</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#a840cf62ce603d38ee9a30aa796122470">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator</a>.</p>
</div>
</div>
<a id="ad8ffad6216e5405f91cb103464815021"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8ffad6216e5405f91cb103464815021">&#9670;&nbsp;</a></span>HandleSaslOutcome()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator.HandleSaslOutcome </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientContext.html">ISaslClientContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html#a007ac2ee5719c195cd362bfa2aec1b3a">SaslAuthOutcome</a>&#160;</td>
<td class="paramname"><em>outcome</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td>
<td class="paramname"><em>additional</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when a SASL outcome frame has arrived and its effect applied, indicating the outcome and any success additional data sent by the 'server' peer. The client can consider the SASL negotiations complete following this event. The client should respond appropriately to the outcome whose state can indicate that negotiations have failed and the server has not authenticated the client. </p>
<p>In the event that the client cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl client context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The client context handling the SASL exchange</td></tr>
<tr><td class="paramname">outcome</td><td>The SASL outcome provided by the server peer</td></tr>
<tr><td class="paramname">additional</td><td>Optional additional data provided by the server</td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#acf93006593e9de730b89018e64f04fa4">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/Proton/Engine/Implementation/Sasl/ProtonDefaultSaslClientAuthenticator.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>