Class: Onelogin::Saml::LogoutResponse

Inherits:
BaseAssertion show all
Defined in:
lib/onelogin/saml/logout_response.rb

Constant Summary collapse

STATUS_MESSAGE =
'Successfully Signed Out'

Instance Attribute Summary collapse

Attributes inherited from BaseAssertion

#base64_assertion, #destination, #id, #in_response_to, #issue_instant, #issuer, #settings, #xml

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseAssertion

#assertion_type, #document, #forward_url, generate_unique_id, get_timestamp, #node_attribute_value, #node_content, parse, #process, #root_attribute_value

Instance Attribute Details

#status_codeObject



9
10
11
# File 'lib/onelogin/saml/logout_response.rb', line 9

def status_code
  @status_code ||= node_attribute_value('samlp:Status/samlp:StatusCode', 'Value')
end

#status_messageObject



13
14
15
# File 'lib/onelogin/saml/logout_response.rb', line 13

def status_message
  @status_message ||= node_content("samlp:Status/samlp:StatusMessage")
end

Class Method Details

.generate(in_response_to, settings) ⇒ Object



17
18
19
# File 'lib/onelogin/saml/logout_response.rb', line 17

def self.generate(in_response_to, settings)
  super(settings, in_response_to: in_response_to, destination: settings.idp_slo_target_url)
end

Instance Method Details

#generateObject



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/onelogin/saml/logout_response.rb', line 21

def generate
  <<-XML
    <samlp:LogoutResponse xmlns:samlp="#{Onelogin::NAMESPACES['samlp']}" xmlns:saml="#{Onelogin::NAMESPACES['saml']}" ID="#{self.id}" Version="2.0" IssueInstant="#{self.issue_instant}" Destination="#{CGI.escapeHTML(self.destination)}" InResponseTo="#{self.in_response_to}">
      <saml:Issuer>#{CGI.escapeHTML(self.issuer)}</saml:Issuer>
      <samlp:Status>
        <samlp:StatusCode Value="#{Onelogin::Saml::StatusCodes::SUCCESS_URI}"></samlp:StatusCode>
        <samlp:StatusMessage>#{STATUS_MESSAGE}</samlp:StatusMessage>
      </samlp:Status>
    </samlp:LogoutResponse>
  XML
end

#success_status?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/onelogin/saml/logout_response.rb', line 33

def success_status?
  self.status_code == Onelogin::Saml::StatusCodes::SUCCESS_URI
end