Commit 29ea668
Changed files (4)
lib/saml/kit/metadata.rb
@@ -77,7 +77,9 @@ module Saml
def certificates
@certificates ||= document.find_all("/md:EntityDescriptor/md:#{name}/md:KeyDescriptor").map do |item|
cert = item.at_xpath("./ds:KeyInfo/ds:X509Data/ds:X509Certificate", NAMESPACES).text
- ::Xml::Kit::Certificate.new(cert, use: item.attribute('use').value.to_sym)
+ attribute = item.attribute('use')
+ use = attribute.nil? ? nil : item.attribute('use').value
+ ::Xml::Kit::Certificate.new(cert, use: use)
end
end
lib/saml/kit/version.rb
@@ -1,5 +1,5 @@
module Saml
module Kit
- VERSION = "1.0.2"
+ VERSION = "1.0.3"
end
end
spec/saml/metadata_spec.rb
@@ -47,4 +47,19 @@ RSpec.describe Saml::Kit::Metadata do
expect(result.contact_person_company).to eql("mailto:hi@example.com")
end
end
+
+ describe "#certificates" do
+ it 'returns each certificate when missing a "use"' do
+ configuration = Saml::Kit::Configuration.new do |config|
+ config.generate_key_pair_for(use: :signing)
+ end
+ xml = Saml::Kit::Metadata.build_xml(configuration: configuration) do |x|
+ x.embed_signature = false
+ x.build_identity_provider
+ end
+ modified_xml = xml.gsub(/use/, 'misuse')
+ subject = described_class.from(modified_xml)
+ expect(subject.certificates.count).to eql(1)
+ end
+ end
end
saml-kit.gemspec
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
spec.require_paths = ["lib"]
spec.add_dependency "activemodel", ">= 4.2.0"
- spec.add_dependency "xml-kit", "~> 0.1"
+ spec.add_dependency "xml-kit", ">= 0.1.4", "<= 1.0.0"
spec.add_development_dependency "bundler", "~> 1.15"
spec.add_development_dependency "ffaker", "~> 2.7"
spec.add_development_dependency "rake", "~> 10.0"