class Vines::Stream::Server::Outbound::Auth

Constants

NS

Public Class Methods

new(stream, success=AuthResult) click to toggle source
Calls superclass method
# File lib/vines/stream/server/outbound/auth.rb, line 10
def initialize(stream, success=AuthResult)
  super
end

Public Instance Methods

node(node) click to toggle source
# File lib/vines/stream/server/outbound/auth.rb, line 14
def node(node)
  raise StreamErrors::NotAuthorized unless external?(node)
  authzid = Base64.strict_encode64(stream.domain)
  stream.write(%Q{<auth xmlns="#{NS}" mechanism="EXTERNAL">#{authzid}</auth>})
  advance
end

Private Instance Methods

external?(node) click to toggle source
# File lib/vines/stream/server/outbound/auth.rb, line 23
def external?(node)
  external = node.xpath("ns:mechanisms/ns:mechanism[text()='EXTERNAL']", 'ns' => NS).any?
  node.name == 'features' && namespace(node) == NAMESPACES[:stream] && external
end