Skip to content

Commit 571e280

Browse files
committed
Test signature method for logout request document
1 parent 4204afc commit 571e280

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

test/logoutrequest_test.rb

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,24 @@ class RequestTest < Minitest::Test
104104
settings.private_key = ruby_saml_key_text
105105
end
106106

107+
it "doens't sign through create_xml_document" do
108+
unauth_req = OneLogin::RubySaml::Logoutrequest.new
109+
inflated = unauth_req.create_xml_document(settings).to_s
110+
111+
refute_match %r[<ds:SignatureValue>([a-zA-Z0-9/+=]+)</ds:SignatureValue>], inflated
112+
refute_match %r[<ds:SignatureMethod Algorithm='http://www.w3.org/2000/09/xmldsig#rsa-sha1'/>], inflated
113+
refute_match %r[<ds:DigestMethod Algorithm='http://www.w3.org/2000/09/xmldsig#sha1'/>], inflated
114+
end
115+
116+
it "signs through create_logout_request_xml_doc" do
117+
unauth_req = OneLogin::RubySaml::Logoutrequest.new
118+
inflated = unauth_req.create_logout_request_xml_doc(settings).to_s
119+
120+
assert_match %r[<ds:SignatureValue>([a-zA-Z0-9/+=]+)</ds:SignatureValue>], inflated
121+
assert_match %r[<ds:SignatureMethod Algorithm='http://www.w3.org/2000/09/xmldsig#rsa-sha1'/>], inflated
122+
assert_match %r[<ds:DigestMethod Algorithm='http://www.w3.org/2000/09/xmldsig#sha1'/>], inflated
123+
end
124+
107125
it "created a signed logout request" do
108126
settings.compress_request = true
109127

@@ -185,8 +203,8 @@ class RequestTest < Minitest::Test
185203
query_string << "&SigAlg=#{CGI.escape(params['SigAlg'])}"
186204

187205
signature_algorithm = XMLSecurity::BaseDocument.new.algorithm(params['SigAlg'])
188-
assert_equal signature_algorithm, OpenSSL::Digest::SHA256
189-
assert cert.public_key.verify(signature_algorithm.new, Base64.decode64(params['Signature']), query_string)
206+
assert_equal signature_algorithm, OpenSSL::Digest::SHA256
207+
assert cert.public_key.verify(signature_algorithm.new, Base64.decode64(params['Signature']), query_string)
190208
end
191209

192210
it "create a signature parameter with RSA_SHA384 / SHA384 and validate it" do
@@ -201,8 +219,8 @@ class RequestTest < Minitest::Test
201219
query_string << "&SigAlg=#{CGI.escape(params['SigAlg'])}"
202220

203221
signature_algorithm = XMLSecurity::BaseDocument.new.algorithm(params['SigAlg'])
204-
assert_equal signature_algorithm, OpenSSL::Digest::SHA384
205-
assert cert.public_key.verify(signature_algorithm.new, Base64.decode64(params['Signature']), query_string)
222+
assert_equal signature_algorithm, OpenSSL::Digest::SHA384
223+
assert cert.public_key.verify(signature_algorithm.new, Base64.decode64(params['Signature']), query_string)
206224
end
207225

208226
it "create a signature parameter with RSA_SHA512 / SHA512 and validate it" do
@@ -217,8 +235,8 @@ class RequestTest < Minitest::Test
217235
query_string << "&SigAlg=#{CGI.escape(params['SigAlg'])}"
218236

219237
signature_algorithm = XMLSecurity::BaseDocument.new.algorithm(params['SigAlg'])
220-
assert_equal signature_algorithm, OpenSSL::Digest::SHA512
221-
assert cert.public_key.verify(signature_algorithm.new, Base64.decode64(params['Signature']), query_string)
238+
assert_equal signature_algorithm, OpenSSL::Digest::SHA512
239+
assert cert.public_key.verify(signature_algorithm.new, Base64.decode64(params['Signature']), query_string)
222240
end
223241

224242
end

0 commit comments

Comments
 (0)