lib/saml/kit/builders/response.rb in saml-kit-0.2.3 vs lib/saml/kit/builders/response.rb in saml-kit-0.2.4

- old
+ new

@@ -4,11 +4,11 @@ class Response include Templatable attr_reader :user, :request attr_accessor :id, :reference_id, :now attr_accessor :version, :status_code - attr_accessor :issuer, :sign, :destination, :encrypt + attr_accessor :issuer, :destination, :encrypt attr_reader :configuration def initialize(user, request, configuration: Saml::Kit.configuration) @user = user @request = request @@ -16,42 +16,36 @@ @reference_id = Id.generate @now = Time.now.utc @version = "2.0" @status_code = Namespaces::SUCCESS @issuer = configuration.issuer - @destination = destination_for(request) @sign = want_assertions_signed - @encrypt = false + @encrypt = encryption_certificate.present? @configuration = configuration end def want_assertions_signed request.provider.want_assertions_signed rescue => error Saml::Kit.logger.error(error) - true + nil end def build - Saml::Kit::Response.new(to_xml, request_id: request.id) + Saml::Kit::Response.new(to_xml, request_id: request.id, configuration: configuration) end - private - - def assertion - @assertion ||= Saml::Kit::Builders::Assertion.new(self) - end - def encryption_certificate request.provider.encryption_certificates.first + rescue => error + Saml::Kit.logger.error(error) + nil end - def destination_for(request) - if request.signed? && request.trusted? - request.assertion_consumer_service_url || request.provider.assertion_consumer_service_for(binding: :http_post).try(:location) - else - request.provider.assertion_consumer_service_for(binding: :http_post).try(:location) - end + private + + def assertion + @assertion ||= Saml::Kit::Builders::Assertion.new(self) end def response_options { ID: id,