class Qpid::Proton::SASL
The SASL
layer is responsible for establishing an authenticated and/or encrypted tunnel over which AMQP frames are passed between peers.
The peer acting as the SASL
client must provide authentication credentials.
The peer acting as the SASL
server must provide authentication against the received credentials.
@note Do not instantiate directly, use {Transport#sasl} to create a SASL
object.
Constants
- AUTH
Authentication failed due to bad credentials.
- NONE
Negotation has not completed.
- OK
Authentication succeeded.
- PROTON_METHOD_PREFIX
Public Class Methods
Set the configuration file name, without extension
The name with an a “.conf” extension will be searched for in the configuration path. If not set, it defaults to “proton-server” or “proton-client” for a server (incoming) or client (outgoing) connection respectively.
@param name the configuration file name without extension
# File lib/core/sasl.rb, line 113 def config_name=(name) Cproton.pn_sasl_config_name(nil, name) end
Set the sasl configuration path
This is used to tell SASL
where to look for the configuration file. In the current implementation it can be a colon separated list of directories.
The environment variable PN_SASL_CONFIG_PATH can also be used to set this path, but if both methods are used then this pn_sasl_config_path() will take precedence.
If not set the underlying implementation default will be used.
@param path the configuration path
# File lib/core/sasl.rb, line 99 def config_path=(path) Cproton.pn_sasl_config_path(nil, path) path end
True if extended SASL
negotiation is supported
All implementations of Proton
support ANONYMOUS and EXTERNAL on both client and server sides and PLAIN on the client side.
Extended SASL
implememtations use an external library (Cyrus SASL
) to support other mechanisms.
@return [Bool] true if extended SASL
negotiation is supported
# File lib/core/sasl.rb, line 80 def self.extended?() Cproton.pn_sasl_extended() end
@private @note Do not instantiate directly, use {Transport#sasl} to create a SASL
object.
# File lib/core/sasl.rb, line 50 def initialize(transport) @impl = Cproton.pn_sasl(transport.impl) end
Public Instance Methods
Set the mechanisms allowed for SASL
negotation @param mechanisms [String] space-delimited list of allowed mechanisms
# File lib/core/sasl.rb, line 64 def allowed_mechs=(mechanisms) Cproton.pn_sasl_allowed_mechs(@impl, mechanisms) end