lib/saml/kit/bindings/url_builder.rb in saml-kit-0.2.3 vs lib/saml/kit/bindings/url_builder.rb in saml-kit-0.2.4
- old
+ new
@@ -1,24 +1,28 @@
module Saml
module Kit
module Bindings
class UrlBuilder
include Serializable
+ attr_reader :configuration
- def initialize(private_key: Saml::Kit.configuration.signing_private_key)
- @private_key = private_key
+ def initialize(configuration: Saml::Kit.configuration)
+ @configuration = configuration
end
def build(saml_document, relay_state: nil)
payload = canonicalize(saml_document, relay_state)
- "#{saml_document.destination}?#{payload}&Signature=#{signature_for(payload)}"
+ if configuration.sign?
+ "#{saml_document.destination}?#{payload}&Signature=#{signature_for(payload)}"
+ else
+ "#{saml_document.destination}?#{payload}"
+ end
end
private
- attr_reader :private_key
-
def signature_for(payload)
+ private_key = configuration.private_keys(use: :signing).sample
encode(private_key.sign(OpenSSL::Digest::SHA256.new, payload))
end
def canonicalize(saml_document, relay_state)
{