This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
The type for a channel representing an authentication step with the
server. The actual authentication functionality is implemented by
the additional interface named in
Future authentication steps also supported by this channel type might
include solving a captcha and/or agreeing to an EULA or terms-of-use
document; each of these would be represented by a channel with this
type, but a different
Channels of this type will normally be be signalled and dispatched
while the
Normally, only one channel of this type will exist on a given Connection; if there is more than one, the handler must complete authentication with each of them in turn.
Channels of this type cannot be requested with methods such as
While it is CONNECTING, the Connection MUST NOT proceed with
connection, or signal
ServerAuthentication channels normally represent the client authenticating itself to the server, but can also be used for the server to authenticate itself to the client (i.e. prove that it is in fact the desired server and not an imposter). Until the authentication handler has confirmed this, connection should not continue.
If a channel of this type is closed with the
If this occurs, the connection manager MAY attempt to continue
connection (for instance, performing SASL authentication by using any
credentials passed to
In particular, the
When the connection is done with the channel and it is no longer needed, it is left open until either the connection state turns to DISCONNECTED or the handler closes the channel. The channel SHOULD NOT close itself once finished with.
This property defines the method used for the authentication step
represented by this channel, which MUST be one of this channel's
The initially-defined interface that can be used here is