Commit 7df9b0e

mo <mo.khan@gmail.com>
2018-03-03 17:28:52
generate authnrequest without nameidpolicy.
1 parent ddcb9bd
Changed files (4)
lib/saml/kit/builders/templates/authentication_request.builder
@@ -4,5 +4,5 @@ xml.instruct!
 xml.tag!('samlp:AuthnRequest', request_options) do
   xml.tag!('saml:Issuer', issuer)
   signature_for(reference_id: id, xml: xml)
-  xml.tag!('samlp:NameIDPolicy', Format: name_id_format)
+  xml.tag!('samlp:NameIDPolicy', Format: name_id_format) if name_id_format.present?
 end
lib/saml/kit/document.rb
@@ -17,6 +17,7 @@ module Saml
         "samlp": ::Saml::Kit::Namespaces::PROTOCOL,
         'xmlenc' => ::Xml::Kit::Namespaces::XMLENC,
       }.freeze
+      attr_accessor :registry
       validates_presence_of :content
       validates_presence_of :id
       validate :must_match_xsd
@@ -25,6 +26,7 @@ module Saml
 
       def initialize(xml, name:, configuration: Saml::Kit.configuration)
         @configuration = configuration
+        @registry = configuration.registry
         @content = xml
         @name = name
       end
lib/saml/kit/trustable.rb
@@ -30,7 +30,7 @@ module Saml
 
       # @!visibility private
       def provider
-        configuration.registry.metadata_for(issuer)
+        registry.metadata_for(issuer)
       end
 
       # @!visibility private
spec/saml/kit/authentication_request_spec.rb
@@ -207,7 +207,9 @@ RSpec.describe Saml::Kit::AuthenticationRequest do
         x.name_id_format = nil
       end
       expect(result).to be_instance_of(described_class)
+      result.registry = instance_double(Saml::Kit::DefaultRegistry, metadata_for: Saml::Kit::ServiceProviderMetadata.build)
       expect(result).to be_valid
+      expect(result.to_xml).not_to include("NameIDPolicy")
     end
   end