class Vines::Stream::Server::Outbound::AuthExternal
Public Class Methods
new(stream, success=AuthExternalResult)
click to toggle source
Calls superclass method
# File lib/vines/stream/server/outbound/auth_external.rb, line 8 def initialize(stream, success=AuthExternalResult) super end
Public Instance Methods
node(node)
click to toggle source
# File lib/vines/stream/server/outbound/auth_external.rb, line 12 def node(node) raise StreamErrors::NotAuthorized unless external?(node) authzid = Base64.strict_encode64(stream.domain) stream.write(%Q{<auth xmlns="#{NAMESPACES[:sasl]}" mechanism="EXTERNAL">#{authzid}</auth>}) advance end
Private Instance Methods
external?(node)
click to toggle source
# File lib/vines/stream/server/outbound/auth_external.rb, line 21 def external?(node) external = node.xpath("ns:mechanisms/ns:mechanism[text()='EXTERNAL']", 'ns' => NAMESPACES[:sasl]).any? features?(node) && external end
features?(node)
click to toggle source
# File lib/vines/stream/server/outbound/auth_external.rb, line 26 def features?(node) node.name == 'features' && namespace(node) == NAMESPACES[:stream] end