class SamlIdp::LogoutRequestBuilder

Attributes

algorithm[RW]
issuer_uri[RW]
name_id[RW]
response_id[RW]
saml_slo_url[RW]

Public Class Methods

new(response_id, issuer_uri, saml_slo_url, name_id, algorithm) click to toggle source
# File lib/saml_idp/logout_request_builder.rb, line 10
def initialize(response_id, issuer_uri, saml_slo_url, name_id, algorithm)
  self.response_id = response_id
  self.issuer_uri = issuer_uri
  self.saml_slo_url = saml_slo_url
  self.name_id = name_id
  self.algorithm = algorithm
end

Private Instance Methods

build() click to toggle source
# File lib/saml_idp/logout_request_builder.rb, line 18
def build
  builder = Builder::XmlMarkup.new
  builder.LogoutRequest ID: response_id_string,
    Version: "2.0",
    IssueInstant: now_iso,
    Destination: saml_slo_url,
    "xmlns" => Saml::XML::Namespaces::PROTOCOL do |request|
      request.Issuer issuer_uri, xmlns: Saml::XML::Namespaces::ASSERTION
      sign request
      request.NameID name_id, xmlns: Saml::XML::Namespaces::ASSERTION,
        Format: Saml::XML::Namespaces::Formats::NameId::PERSISTENT
      request.SessionIndex response_id_string
    end
end