Commit 135b52b
Changed files (6)
lib
saml
lib/saml/kit/signature.rb
@@ -1,23 +1,4 @@
module Saml
module Kit
- class Signature
- attr_reader :signatures
- attr_reader :xml
-
- def initialize(xml, signatures)
- @signatures = signatures
- @xml = xml
- end
-
- def template(reference_id)
- Template.new(signatures.build(reference_id)).to_xml(xml: xml)
- end
-
- def self.sign(xml: ::Builder::XmlMarkup.new, configuration: Saml::Kit.configuration)
- signatures = Saml::Kit::Signatures.new(configuration: configuration)
- yield xml, new(xml, signatures)
- signatures.complete(xml.target!)
- end
- end
end
end
lib/saml/kit/signatures.rb
@@ -17,6 +17,26 @@ module Saml
private_key = configuration.private_keys(use: :signing).last
Xmldsig::SignedDocument.new(raw_xml).sign(private_key)
end
+
+ def self.sign(xml: ::Builder::XmlMarkup.new, configuration: Saml::Kit.configuration)
+ signatures = Saml::Kit::Signatures.new(configuration: configuration)
+ yield xml, Signature.new(xml, signatures)
+ signatures.complete(xml.target!)
+ end
+
+ class Signature
+ attr_reader :signatures
+ attr_reader :xml
+
+ def initialize(xml, signatures)
+ @signatures = signatures
+ @xml = xml
+ end
+
+ def template(reference_id)
+ Template.new(signatures.build(reference_id)).to_xml(xml: xml)
+ end
+ end
end
end
end
spec/saml/authentication_request_spec.rb
@@ -84,7 +84,7 @@ RSpec.describe Saml::Kit::AuthenticationRequest do
id = Saml::Kit::Id.generate
configuration = Saml::Kit::Configuration.new
configuration.generate_key_pair_for(use: :signing)
- signed_xml = Saml::Kit::Signature.sign(configuration: configuration) do |xml, signature|
+ signed_xml = Saml::Kit::Signatures.sign(configuration: configuration) do |xml, signature|
xml.tag!('samlp:AuthnRequest', "xmlns:samlp" => Saml::Kit::Namespaces::PROTOCOL, AssertionConsumerServiceURL: assertion_consumer_service_url, ID: id) do
signature.template(id)
xml.Fake do
spec/saml/logout_request_spec.rb
@@ -117,7 +117,7 @@ RSpec.describe Saml::Kit::LogoutRequest do
id = Saml::Kit::Id.generate
configuration = Saml::Kit::Configuration.new
configuration.generate_key_pair_for(use: :signing)
- signed_xml = Saml::Kit::Signature.sign(configuration: configuration) do |xml, signature|
+ signed_xml = Saml::Kit::Signatures.sign(configuration: configuration) do |xml, signature|
xml.LogoutRequest ID: id do
signature.template(id)
xml.Fake do
spec/saml/response_spec.rb
@@ -59,7 +59,7 @@ RSpec.describe Saml::Kit::Response do
id = Saml::Kit::Id.generate
configuration = Saml::Kit::Configuration.new
configuration.generate_key_pair_for(use: :signing)
- signed_xml = Saml::Kit::Signature.sign(configuration: configuration) do |xml, signature|
+ signed_xml = Saml::Kit::Signatures.sign(configuration: configuration) do |xml, signature|
xml.tag! "samlp:Response", "xmlns:samlp" => Saml::Kit::Namespaces::PROTOCOL, ID: id do
signature.template(id)
xml.Fake do
spec/saml/signature_spec.rb → spec/saml/signatures_spec.rb
@@ -1,6 +1,6 @@
require "spec_helper"
-RSpec.describe Saml::Kit::Signature do
+RSpec.describe Saml::Kit::Signatures do
let(:configuration) do
config = Saml::Kit::Configuration.new
config.add_key_pair(certificate, private_key, password: password, use: :signing)