Commit 8f9a2b3
Changed files (2)
lib
saml
lib/saml/kit/content.rb
@@ -1,10 +1,6 @@
module Saml
module Kit
class Content
- def self.serialize(xml, compress: false)
- compress ? encode(deflate(xml)) : encode(xml)
- end
-
def self.deserialize(xml)
decoded = decode(xml)
begin
lib/saml/kit/url_builder.rb
@@ -20,13 +20,26 @@ module Saml
def canonicalize(saml_document, relay_state)
{
- saml_document.query_string_parameter => Content.serialize(saml_document.to_xml, compress: true),
+ saml_document.query_string_parameter => serialize(saml_document.to_xml),
'RelayState' => relay_state,
'SigAlg' => Saml::Kit::Namespaces::SHA256,
}.map do |(key, value)|
value.present? ? "#{key}=#{CGI.escape(value)}" : nil
end.compact.join('&')
end
+
+ def serialize(value)
+ encode(deflate(value))
+ end
+
+ # drop header and checksum as per spec.
+ def deflate(value, level: Zlib::BEST_COMPRESSION)
+ Zlib::Deflate.deflate(value, level)[2..-5]
+ end
+
+ def encode(value)
+ Base64.strict_encode64(value)
+ end
end
end
end