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,