Commit 066cd93

mo <mo.khan@gmail.com>
2017-12-16 19:02:29
fix sp/idp metadata builders.
1 parent fd37d75
lib/saml/kit/builders/identity_provider_metadata.rb
@@ -3,10 +3,13 @@ module Saml
     module Builders
       class IdentityProviderMetadata
         include Saml::Kit::Templatable
-        attr_accessor :id, :organization_name, :organization_url, :contact_email, :entity_id, :attributes, :name_id_formats
+        extend Forwardable
+        attr_accessor :attributes, :name_id_formats
         attr_accessor :want_authn_requests_signed
         attr_reader :logout_urls, :single_sign_on_urls
         attr_reader :configuration
+        attr_reader :metadata
+        def_delegators :metadata, :id, :id=, :entity_id, :entity_id=, :organization_name, :organization_name=, :organization_url, :organization_url=, :contact_email, :contact_email=, :to_xml
 
         def initialize(configuration: Saml::Kit.configuration)
           @attributes = []
@@ -17,6 +20,8 @@ module Saml
           @name_id_formats = [Namespaces::PERSISTENT]
           @single_sign_on_urls = []
           @want_authn_requests_signed = true
+          @metadata = Saml::Kit::Builders::Metadata.new(configuration: configuration)
+          @metadata.identity_provider = self
         end
 
         def add_single_sign_on_service(url, binding: :http_post)
lib/saml/kit/builders/metadata.rb
@@ -6,10 +6,10 @@ module Saml
 
         attr_accessor :entity_id
         attr_accessor :id
+        attr_accessor :identity_provider
         attr_accessor :organization_name, :organization_url, :contact_email
+        attr_accessor :service_provider
         attr_reader :configuration
-        attr_reader :identity_provider
-        attr_reader :service_provider
 
         def initialize(configuration: Saml::Kit.configuration)
           @id = Id.generate
lib/saml/kit/builders/service_provider_metadata.rb
@@ -3,19 +3,21 @@ module Saml
     module Builders
       class ServiceProviderMetadata
         include Saml::Kit::Templatable
-        attr_accessor :id, :entity_id, :acs_urls, :logout_urls, :name_id_formats
-        attr_accessor :organization_name, :organization_url, :contact_email
+        extend Forwardable
+        attr_accessor :acs_urls, :logout_urls, :name_id_formats
         attr_accessor :want_assertions_signed
         attr_reader :configuration
+        attr_reader :metadata
+        def_delegators :metadata, :id, :id=, :entity_id, :entity_id=, :organization_name, :organization_name=, :organization_url, :organization_url=, :contact_email, :contact_email=, :to_xml
 
         def initialize(configuration: Saml::Kit.configuration)
           @acs_urls = []
           @configuration = configuration
-          @entity_id = configuration.issuer
-          @id = Id.generate
           @logout_urls = []
           @name_id_formats = [Namespaces::PERSISTENT]
           @want_assertions_signed = true
+          @metadata = Saml::Kit::Builders::Metadata.new(configuration: configuration)
+          @metadata.service_provider = self
         end
 
         def add_assertion_consumer_service(url, binding: :http_post)