blob: 55e30e25119f9fa6a36ccf5cd7e740c4b5907f36 [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.Sasl.ISaslClientAuthenticator Interface 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_1Sasl.html">Sasl</a></li><li class="navelem"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html">ISaslClientAuthenticator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator Interface Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Listener for SASL frame arrival to facilitate relevant handling for the SASL authentication of the client side of the SASL exchange. See the AMQP specification SASL negotiation process overview for related detail
<a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator:</div>
<div class="dyncontent">
<div class="center">
<img src="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.png" usemap="#Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator_map" alt=""/>
<map id="Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator_map" name="Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator_map">
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html" title="A Proton default SASL client authenticator which only supports remote SASL exchanges where the ANONYM..." alt="Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator" shape="rect" coords="0,56,497,80"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html" title="Handles SASL traffic from the proton engine and drives the authentication process for a client connec..." alt="Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator" shape="rect" coords="507,56,1004,80"/>
</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:a3c3b4836daa7b2e8477e1c6551e47ed8"><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"><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"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840cf62ce603d38ee9a30aa796122470"><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#a840cf62ce603d38ee9a30aa796122470">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:a840cf62ce603d38ee9a30aa796122470"><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="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#a840cf62ce603d38ee9a30aa796122470">More...</a><br /></td></tr>
<tr class="separator:a840cf62ce603d38ee9a30aa796122470"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7793c4ad3c9552f813e337797c953b5"><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#af7793c4ad3c9552f813e337797c953b5">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:af7793c4ad3c9552f813e337797c953b5"><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="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#af7793c4ad3c9552f813e337797c953b5">More...</a><br /></td></tr>
<tr class="separator:af7793c4ad3c9552f813e337797c953b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf93006593e9de730b89018e64f04fa4"><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#acf93006593e9de730b89018e64f04fa4">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:acf93006593e9de730b89018e64f04fa4"><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="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslClientAuthenticator.html#acf93006593e9de730b89018e64f04fa4">More...</a><br /></td></tr>
<tr class="separator:acf93006593e9de730b89018e64f04fa4"><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>Listener for SASL frame arrival to facilitate relevant handling for the SASL authentication of the client side of the SASL exchange. See the AMQP specification SASL negotiation process overview for related detail</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="af7793c4ad3c9552f813e337797c953b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7793c4ad3c9552f813e337797c953b5">&#9670;&nbsp;</a></span>HandleSaslChallenge()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator.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>
</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>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#aaad612cee63514f6f52359ffacc6bb5e">Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#aaac6e79b02334007b2f69207242b0077">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator</a>.</p>
</div>
</div>
<a id="a840cf62ce603d38ee9a30aa796122470"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a840cf62ce603d38ee9a30aa796122470">&#9670;&nbsp;</a></span>HandleSaslMechanisms()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator.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>
</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>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#aaaff22f382784f723a3fab77ec717cff">Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#a87fd0f2369cdac936510589f167259e8">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator</a>.</p>
</div>
</div>
<a id="acf93006593e9de730b89018e64f04fa4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf93006593e9de730b89018e64f04fa4">&#9670;&nbsp;</a></span>HandleSaslOutcome()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.Sasl.ISaslClientAuthenticator.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>
</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>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1SaslAuthenticator.html#a78224f65d83d7fa239a8d9568983ad29">Apache.Qpid.Proton.Engine.Sasl.Client.SaslAuthenticator</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslClientAuthenticator.html#ad8ffad6216e5405f91cb103464815021">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslClientAuthenticator</a>.</p>
</div>
</div>
<a id="a3c3b4836daa7b2e8477e1c6551e47ed8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c3b4836daa7b2e8477e1c6551e47ed8">&#9670;&nbsp;</a></span>Initialize()</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.Sasl.ISaslClientAuthenticator.Initialize </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><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 before SASL authentication begins to give the application code a clear point to initialize all the client side expectations. </p>
<p>The application should use this event to configure the client mechanisms and other client authentication properties. In the event that the client cannot perform the negotiation due to some configuration issue it should call the failure method of the sasl client context provided. </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>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>src/Proton/Engine/Sasl/ISaslClientAuthenticator.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>