Commit 89db8c2

mo <mo@mokhan.ca>
2017-12-11 22:55:39
use forwardable module to remove duplication.
1 parent 2c2ff13
Changed files (1)
lib
saml
kit
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