Commit 89db8c2
Changed files (1)
lib
saml
kit
builders
lib/saml/kit/builders/assertion.rb
@@ -3,27 +3,12 @@ module Saml
module Builders
class Assertion
include Templatable
- attr_reader :configuration
+ extend Forwardable
+
+ def_delegators :@response_builder, :encrypt, :sign, :request, :issuer, :reference_id, :now, :configuration, :user, :version
def initialize(response_builder)
@response_builder = response_builder
- @configuration = response_builder.configuration
- end
-
- def encrypt
- @response_builder.encrypt
- end
-
- def sign
- @response_builder.sign
- end
-
- def request
- @response_builder.request
- end
-
- def issuer
- @response_builder.issuer
end
def name_id_format
@@ -31,15 +16,11 @@ module Saml
end
def name_id
- @response_builder.user.name_id_for(name_id_format)
+ user.name_id_for(name_id_format)
end
def assertion_attributes
- @response_builder.user.assertion_attributes_for(request)
- end
-
- def reference_id
- @response_builder.reference_id
+ user.assertion_attributes_for(request)
end
private
@@ -47,8 +28,8 @@ module Saml
def assertion_options
{
ID: reference_id,
- IssueInstant: @response_builder.now.iso8601,
- Version: "2.0",
+ IssueInstant: now.iso8601,
+ Version: version,
xmlns: Namespaces::ASSERTION,
}
end
@@ -56,23 +37,23 @@ module Saml
def subject_confirmation_data_options
{
InResponseTo: request.id,
- NotOnOrAfter: 3.hours.since(@response_builder.now).utc.iso8601,
+ NotOnOrAfter: 3.hours.since(now).utc.iso8601,
Recipient: request.assertion_consumer_service_url,
}
end
def conditions_options
{
- NotBefore: @response_builder.now.utc.iso8601,
+ NotBefore: now.utc.iso8601,
NotOnOrAfter: configuration.session_timeout.from_now.utc.iso8601,
}
end
def authn_statement_options
{
- AuthnInstant: @response_builder.now.iso8601,
+ AuthnInstant: now.iso8601,
SessionIndex: reference_id,
- SessionNotOnOrAfter: 3.hours.since(@response_builder.now).utc.iso8601,
+ SessionNotOnOrAfter: 3.hours.since(now).utc.iso8601,
}
end
end