class Samlsso::SloLogoutrequest

Attributes

document[R]
options[R]
request[R]

Public Class Methods

new(request, options = {}) click to toggle source
# File lib/samlsso/slo_logoutrequest.rb, line 12
def initialize(request, options = {})
  raise ArgumentError.new("Request cannot be nil") if request.nil?
  @options  = options
  @request = decode_raw_saml(request)
  @document = REXML::Document.new(@request)
end

Public Instance Methods

id() click to toggle source
# File lib/samlsso/slo_logoutrequest.rb, line 35
def id
  return @id if @id
  element = REXML::XPath.first(document, "/p:LogoutRequest", {
      "p" => PROTOCOL} )
  return nil if element.nil?
  return element.attributes["ID"]
end
is_valid?() click to toggle source
# File lib/samlsso/slo_logoutrequest.rb, line 19
def is_valid?
  validate
end
issuer() click to toggle source
# File lib/samlsso/slo_logoutrequest.rb, line 43
def issuer
  @issuer ||= begin
    node = REXML::XPath.first(document, "/p:LogoutRequest/a:Issuer", { "p" => PROTOCOL, "a" => ASSERTION })
    node.nil? ? nil : node.text
  end
end
name_id() click to toggle source

The value of the user identifier as designated by the initialization request response

# File lib/samlsso/slo_logoutrequest.rb, line 28
def name_id
  @name_id ||= begin
    node = REXML::XPath.first(document, "/p:LogoutRequest/a:NameID", { "p" => PROTOCOL, "a" => ASSERTION })
    node.nil? ? nil : node.text
  end
end
validate!() click to toggle source
# File lib/samlsso/slo_logoutrequest.rb, line 23
def validate!
  validate(false)
end

Private Instance Methods

validate(soft = true) click to toggle source
# File lib/samlsso/slo_logoutrequest.rb, line 52
def validate(soft = true)
  valid_saml?(document, soft)  && validate_request_state(soft)
end
validate_request_state(soft = true) click to toggle source
# File lib/samlsso/slo_logoutrequest.rb, line 56
def validate_request_state(soft = true)
  if request.empty?
    return soft ? false : validation_error("Blank request")
  end
  true
end