Implement the Simple Authentication and Security Layer (SASL)
as defined by RFC 2222.
This class will pick a security mechanism (e.g. CRAM-MD5)
from a list defined by the user of this class based on server
options. The selected security mechanism will use its challenge-response
mechanism to authenticate this client with the selected server.
Currently no negotiation or support for a security layer is implemented.
The SASL mechanism selected for this authentication sequence.
as %String [ InitialExpression = "CRAM-MD5,LOGIN,PLAIN" ];
An ordered, comma separated list of security mechanism names to be used for SASL
authentication. Security mechanisms that are added to this list must inherit
from %Net.SASL.Base. The default class name for these mechanisms is
%Net.SASL.<mechanism name> where <mechanism name> is the name of a SASL
mechanism with all characters except alphanumerics removed. The class name may be
supplied explicitely in the format "<mechanism name>:<class name>".
InterSystems IRIS-supplied mechanisms are in the package %Net.SASL.
The password for the user name being authenticated.
The service name for the service being authenticated.
For example, SMTP authentication uses the service name "smtp".
The user name being authenticated.
No authentication will be attempted unless UserName and Password are supplied.
method Next(challenge As %String, ByRef response As %String)
Return next response based on challenge using the selected mechanism.
method Start(authlist As %String, ByRef mechanismName As %String, ByRef response As %String)
Find matching SASL mechanism from blank separated authlist and
return mechanism name and optional initial response for this mechanism.