main
1# frozen_string_literal: true
2
3module Saml
4 module Kit
5 module Builders
6 # {include:file:lib/saml/kit/builders/templates/logout_response.builder}
7 # {include:file:spec/saml/kit/builders/logout_response_spec.rb}
8 class LogoutResponse
9 include XmlTemplatable
10 attr_accessor :id, :issuer, :version, :status_code, :now, :destination
11 attr_reader :request
12 attr_reader :configuration
13
14 def initialize(request, configuration: Saml::Kit.configuration)
15 @configuration = configuration
16 @id = ::Xml::Kit::Id.generate
17 @issuer = configuration.entity_id
18 @now = Time.now.utc
19 @request = request
20 @status_code = Namespaces::SUCCESS
21 @version = '2.0'
22 end
23
24 def build
25 Saml::Kit::LogoutResponse.new(to_xml, request_id: request.id)
26 end
27
28 private
29
30 def logout_response_options
31 {
32 xmlns: Namespaces::PROTOCOL,
33 ID: id,
34 Version: version,
35 IssueInstant: now.utc.iso8601,
36 Destination: destination,
37 InResponseTo: request.id,
38 }
39 end
40 end
41 end
42 end
43end