class SAML2::LogoutRequest

Attributes

name_id[W]
session_index[W]

Public Class Methods

initiate(sso, issuer, name_id, session_index = []) click to toggle source

@param sso [SSO] @param issuer [NameID] @param name_id [NameID] @param session_index optional [String, Array<String>] @return [LogoutRequest]

# File lib/saml2/logout_request.rb, line 15
def self.initiate(sso, issuer, name_id, session_index = [])
  logout_request = new
  logout_request.issuer = issuer
  logout_request.destination = sso.single_logout_services.first.location
  logout_request.name_id = name_id
  logout_request.session_index = session_index

  logout_request
end

Public Instance Methods

name_id() click to toggle source

@return [NameID]

# File lib/saml2/logout_request.rb, line 26
def name_id
  @name_id ||= (NameID.from_xml(xml.at_xpath("saml:NameID", Namespaces::ALL)) if xml)
end
session_index() click to toggle source

@return [String, Array<String>]

# File lib/saml2/logout_request.rb, line 31
def session_index
  @session_index ||= (load_string_array(xml, "samlp:SessionIndex") if xml)
end

Private Instance Methods

build(builder) click to toggle source
Calls superclass method
# File lib/saml2/logout_request.rb, line 37
def build(builder)
  builder["samlp"].LogoutRequest(
    "xmlns:samlp" => Namespaces::SAMLP,
    "xmlns:saml" => Namespaces::SAML
  ) do |logout_request|
    super(logout_request)

    name_id.build(logout_request)

    Array(session_index).each do |session_index_instance|
      logout_request["samlp"].SessionIndex(session_index_instance)
    end
  end
end