<!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.ProtonDefaultSaslServerAuthenticator 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_1ProtonDefaultSaslServerAuthenticator.html">ProtonDefaultSaslServerAuthenticator</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_1ProtonDefaultSaslServerAuthenticator-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslServerAuthenticator Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> default SASL server authenticator which fails any incoming authentication requests. A misconfigured engine will not inadvertently allow for SASL authentication to occur but instead reject all attempts with a SASL auth failure.  
 <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslServerAuthenticator.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslServerAuthenticator:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslServerAuthenticator.png" usemap="#Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslServerAuthenticator_map" alt=""/>
  <map id="Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslServerAuthenticator_map" name="Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonDefaultSaslServerAuthenticator_map">
<area href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator.html" title="Listener for SASL frame arrival to facilitate relevant handling for the SASL authentication of the se..." alt="Apache.Qpid.Proton.Engine.Sasl.ISaslServerAuthenticator" shape="rect" coords="0,0,504,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:aaaa893e08d56e113ff24ff6333ce049f"><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_1ProtonDefaultSaslServerAuthenticator.html#aaaa893e08d56e113ff24ff6333ce049f">HandleSaslHeader</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerContext.html">ISaslServerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Types_1_1Transport_1_1AmqpHeader.html">AmqpHeader</a> header)</td></tr>
<tr class="memdesc:aaaa893e08d56e113ff24ff6333ce049f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the SASL header has been received and the server is now ready to send the configured SASL mechanisms. The handler should respond be calling the mechanisms send API of the provided server context immediately or later using the same thread that invoked this event handler.  <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslServerAuthenticator.html#aaaa893e08d56e113ff24ff6333ce049f">More...</a><br /></td></tr>
<tr class="separator:aaaa893e08d56e113ff24ff6333ce049f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bfd29121e16ad15cba3f0b8efd2d456"><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_1ProtonDefaultSaslServerAuthenticator.html#a9bfd29121e16ad15cba3f0b8efd2d456">HandleSaslInit</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerContext.html">ISaslServerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Types_1_1Symbol.html">Symbol</a> mechanism, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> initResponse)</td></tr>
<tr class="memdesc:a9bfd29121e16ad15cba3f0b8efd2d456"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a SASL init frame has arrived from the client indicating the chosen SASL mechanism and the initial response data if any. Based on the chosen mechanism the server handler should provide additional challenges or complete the SASL negotiation by sending an outcome to the client. The handler can either respond immediately or it should response using the same thread that invoked this handler.  <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslServerAuthenticator.html#a9bfd29121e16ad15cba3f0b8efd2d456">More...</a><br /></td></tr>
<tr class="separator:a9bfd29121e16ad15cba3f0b8efd2d456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af385a70b8feb494ecb71b75834e2b4a7"><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_1ProtonDefaultSaslServerAuthenticator.html#af385a70b8feb494ecb71b75834e2b4a7">HandleSaslResponse</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerContext.html">ISaslServerContext</a> context, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> response)</td></tr>
<tr class="memdesc:af385a70b8feb494ecb71b75834e2b4a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a SASL response frame has arrived from the client. The server should process the response and either offer additional challenges or complete the SASL negotiations based on the mechanics of the chosen SASL mechanism. The server handler should either respond immediately or should respond from the same thread that the response handler was invoked from.  <a href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslServerAuthenticator.html#af385a70b8feb494ecb71b75834e2b4a7">More...</a><br /></td></tr>
<tr class="separator:af385a70b8feb494ecb71b75834e2b4a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator')"><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_1ISaslServerAuthenticator.html">Apache.Qpid.Proton.Engine.Sasl.ISaslServerAuthenticator</a></td></tr>
<tr class="memitem:a78967f574ae2536395b2d245aa66639a inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator"><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_1ISaslServerAuthenticator.html#a78967f574ae2536395b2d245aa66639a">Initialize</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerContext.html">ISaslServerContext</a> context)</td></tr>
<tr class="memdesc:a78967f574ae2536395b2d245aa66639a inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called before SASL authentication begins to give the server code a clear point to initialize all the server side expectations.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator.html#a78967f574ae2536395b2d245aa66639a">More...</a><br /></td></tr>
<tr class="separator:a78967f574ae2536395b2d245aa66639a inherit pub_methods_interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator"><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:ac161789877f45f3aeb0f6429cf73954b"><td class="memItemLeft" align="right" valign="top"><a id="ac161789877f45f3aeb0f6429cf73954b"></a>
static readonly <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonDefaultSaslServerAuthenticator.html">ProtonDefaultSaslServerAuthenticator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Instance</b> = new()</td></tr>
<tr class="separator:ac161789877f45f3aeb0f6429cf73954b"><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 class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> default SASL server authenticator which fails any incoming authentication requests. A misconfigured engine will not inadvertently allow for SASL authentication to occur but instead reject all attempts with a SASL auth failure. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aaaa893e08d56e113ff24ff6333ce049f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaa893e08d56e113ff24ff6333ce049f">&#9670;&nbsp;</a></span>HandleSaslHeader()</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.ProtonDefaultSaslServerAuthenticator.HandleSaslHeader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerContext.html">ISaslServerContext</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_1Transport_1_1AmqpHeader.html">AmqpHeader</a>&#160;</td>
          <td class="paramname"><em>header</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 the SASL header has been received and the server is now ready to send the configured SASL mechanisms. The handler should respond be calling the mechanisms send API of the provided server context immediately or later using the same thread that invoked this event handler. </p>
<p>In the event that the server cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl server context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>The server context handling the SASL exchange</td></tr>
    <tr><td class="paramname">header</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator.html#a035cdbae44dd8a49e3498b94a5ed6c9d">Apache.Qpid.Proton.Engine.Sasl.ISaslServerAuthenticator</a>.</p>

</div>
</div>
<a id="a9bfd29121e16ad15cba3f0b8efd2d456"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9bfd29121e16ad15cba3f0b8efd2d456">&#9670;&nbsp;</a></span>HandleSaslInit()</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.ProtonDefaultSaslServerAuthenticator.HandleSaslInit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerContext.html">ISaslServerContext</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>mechanism</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>initResponse</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 init frame has arrived from the client indicating the chosen SASL mechanism and the initial response data if any. Based on the chosen mechanism the server handler should provide additional challenges or complete the SASL negotiation by sending an outcome to the client. The handler can either respond immediately or it should response using the same thread that invoked this handler. </p>
<p>In the event that the server cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl server context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>The server context handling the SASL exchange</td></tr>
    <tr><td class="paramname">mechanism</td><td></td></tr>
    <tr><td class="paramname">initResponse</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator.html#a8013f6cc133411d77463ff5b90b07754">Apache.Qpid.Proton.Engine.Sasl.ISaslServerAuthenticator</a>.</p>

</div>
</div>
<a id="af385a70b8feb494ecb71b75834e2b4a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af385a70b8feb494ecb71b75834e2b4a7">&#9670;&nbsp;</a></span>HandleSaslResponse()</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.ProtonDefaultSaslServerAuthenticator.HandleSaslResponse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerContext.html">ISaslServerContext</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>response</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 response frame has arrived from the client. The server should process the response and either offer additional challenges or complete the SASL negotiations based on the mechanics of the chosen SASL mechanism. The server handler should either respond immediately or should respond from the same thread that the response handler was invoked from. </p>
<p>In the event that the server cannot perform the negotiation due to some configuration or other internal issue it should call the failure method of the sasl server context provided here. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>The server context handling the SASL exchange</td></tr>
    <tr><td class="paramname">response</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1ISaslServerAuthenticator.html#a56fff6819e995dd3027340f095ea8998">Apache.Qpid.Proton.Engine.Sasl.ISaslServerAuthenticator</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/Proton/Engine/Implementation/Sasl/ProtonDefaultSaslServerAuthenticator .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>
