lib/saml/kit/bindings/url_builder.rb in saml-kit-1.0.15 vs lib/saml/kit/bindings/url_builder.rb in saml-kit-1.0.16
- old
+ new
@@ -15,21 +15,20 @@
def initialize(configuration: Saml::Kit.configuration)
@configuration = configuration
end
- def build(saml_document, relay_state: nil)
- destination = saml_document.destination
+ def build(document, relay_state: nil)
+ destination = document.destination
if configuration.sign?
- payload = canonicalize(saml_document, relay_state)
+ payload = canonicalize(document, relay_state)
"#{destination}?#{payload}&Signature=#{signature_for(payload)}"
else
- payload = to_query_string(
- saml_document.query_string_parameter => serialize(saml_document.to_xml),
+ "#{destination}?" + to_query_string(
+ document.query_string_parameter => serialize(document.to_xml),
'RelayState' => relay_state
)
- "#{destination}?#{payload}"
end
end
private
@@ -37,11 +36,12 @@
private_key = configuration.private_keys(use: :signing).last
encode(private_key.sign(OpenSSL::Digest::SHA256.new, payload))
end
def canonicalize(saml_document, relay_state)
+ xml = saml_document.to_xml
to_query_string(
- saml_document.query_string_parameter => serialize(saml_document.to_xml),
+ saml_document.query_string_parameter => serialize(xml),
'RelayState' => relay_state,
'SigAlg' => ::Xml::Kit::Namespaces::SHA256
)
end