@@ -211,14 +211,14 @@ class XmlTest < Minitest::Test
211211 describe '#extract_inclusive_namespaces' do
212212 it 'support explicit namespace resolution for exclusive canonicalization' do
213213 document = fixture ( :open_saml_response , false )
214- inclusive_namespaces = RubySaml ::XML ::SignedDocumentValidator . send ( :extract_inclusive_namespaces , document )
214+ inclusive_namespaces = RubySaml ::XML ::SignedDocumentInfo . new ( document ) . send ( :inclusive_namespaces )
215215
216216 assert_equal %w[ xs ] , inclusive_namespaces
217217 end
218218
219219 it 'support implicit namespace resolution for exclusive canonicalization' do
220220 document = fixture ( :no_signature_ns , false )
221- inclusive_namespaces = RubySaml ::XML ::SignedDocumentValidator . send ( :extract_inclusive_namespaces , document )
221+ inclusive_namespaces = RubySaml ::XML ::SignedDocumentInfo . new ( document ) . send ( :inclusive_namespaces )
222222
223223 assert_equal %w[ #default saml ds xs xsi ] , inclusive_namespaces
224224 end
@@ -238,7 +238,7 @@ class XmlTest < Minitest::Test
238238 it 'return nil when inclusive namespace element is missing' do
239239 document = fixture ( :no_signature_ns , false )
240240 document . slice! %r{<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default saml ds xs xsi"/>}
241- inclusive_namespaces = RubySaml ::XML ::SignedDocumentValidator . send ( :extract_inclusive_namespaces , document )
241+ inclusive_namespaces = RubySaml ::XML ::SignedDocumentInfo . new ( document ) . send ( :inclusive_namespaces )
242242
243243 assert inclusive_namespaces . nil?
244244 end
@@ -250,157 +250,58 @@ class XmlTest < Minitest::Test
250250 settings . idp_sso_service_url = "https://idp.example.com/sso"
251251 settings . protocol_binding = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
252252 settings . idp_slo_service_url = "https://idp.example.com/slo" ,
253- settings . sp_entity_id = "https://sp.example.com/saml2"
253+ settings . sp_entity_id = "https://sp.example.com/saml2"
254254 settings . assertion_consumer_service_url = "https://sp.example.com/acs"
255255 settings . single_logout_service_url = "https://sp.example.com/sls"
256256 settings
257257 end
258258
259- it "sign an AuthNRequest" do
260- auth_request = RubySaml ::Authrequest . new
261- auth_request . assign_uuid ( settings )
262- request_doc = auth_request . create_xml_document ( settings )
263-
264- # Use the DocumentSigner to sign the document
265- signed_doc = RubySaml ::XML ::DocumentSigner . sign_document (
266- request_doc ,
267- ruby_saml_key ,
268- ruby_saml_cert ,
269- RubySaml ::XML ::RSA_SHA256 ,
270- RubySaml ::XML ::SHA256
271- )
272-
273- # Verify our signature using the static validator
274- errors = [ ]
275- assert RubySaml ::XML ::SignedDocumentValidator . validate_document (
276- signed_doc . to_s ,
277- ruby_saml_cert_fingerprint ,
278- soft : false
279- )
280-
281- # Test with certificate as text
282- auth_request2 = RubySaml ::Authrequest . new
283- auth_request2 . assign_uuid ( settings )
284- request_doc2 = auth_request2 . create_xml_document ( settings )
285-
286- signed_doc2 = RubySaml ::XML ::DocumentSigner . sign_document (
287- request_doc2 ,
288- ruby_saml_key ,
289- ruby_saml_cert_text ,
290- RubySaml ::XML ::RSA_SHA256 ,
291- RubySaml ::XML ::SHA256
292- )
293-
294- errors2 = [ ]
295- assert RubySaml ::XML ::SignedDocumentValidator . validate_document (
296- signed_doc2 . to_s ,
297- ruby_saml_cert_fingerprint ,
298- soft : false
299- )
259+ it "signs an AuthNRequest with a certificate object" do
260+ request_doc = RubySaml ::Authrequest . new . create_authentication_xml_doc ( settings )
261+ request_doc = RubySaml ::XML ::DocumentSigner . sign_document ( request_doc , ruby_saml_key , ruby_saml_cert )
262+
263+ # verify signature
264+ assert RubySaml ::XML ::SignedDocumentValidator . validate_document ( request_doc . to_s , ruby_saml_cert_fingerprint , soft : false )
265+ end
266+
267+ it "signs an AuthNRequest with a certificate string" do
268+ request_doc = RubySaml ::Authrequest . new . create_authentication_xml_doc ( settings )
269+ request_doc = RubySaml ::XML ::DocumentSigner . sign_document ( request_doc , ruby_saml_key , ruby_saml_cert_text )
270+
271+ # verify signature
272+ assert RubySaml ::XML ::SignedDocumentValidator . validate_document ( request_doc . to_s , ruby_saml_cert_fingerprint , soft : false )
273+ end
274+
275+ it "signs a LogoutRequest with a certificate object" do
276+ logout_request_doc = RubySaml ::Logoutrequest . new . create_logout_request_xml_doc ( settings )
277+ logout_request_doc = RubySaml ::XML ::DocumentSigner . sign_document ( logout_request_doc , ruby_saml_key , ruby_saml_cert )
278+
279+ # verify signature
280+ assert RubySaml ::XML ::SignedDocumentValidator . validate_document ( logout_request_doc . to_s , ruby_saml_cert_fingerprint , soft : false )
300281 end
301282
302- it "sign an AuthNRequest with certificate as text" do
303- auth_request = RubySaml ::Authrequest . new
304- auth_request . assign_uuid ( settings )
305- request_doc = auth_request . create_xml_document ( settings )
306-
307- signed_doc = RubySaml ::XML ::DocumentSigner . sign_document (
308- request_doc ,
309- ruby_saml_key ,
310- ruby_saml_cert_text ,
311- RubySaml ::XML ::RSA_SHA256 ,
312- RubySaml ::XML ::SHA256
313- )
314-
315- # Verify our signature
316- errors = [ ]
317- assert RubySaml ::XML ::SignedDocumentValidator . validate_document (
318- signed_doc . to_s ,
319- ruby_saml_cert_fingerprint ,
320- soft : false
321- )
283+ it "signs a LogoutRequest with a certificate string" do
284+ logout_request_doc = RubySaml ::Logoutrequest . new . create_logout_request_xml_doc ( settings )
285+ logout_request_doc = RubySaml ::XML ::DocumentSigner . sign_document ( logout_request_doc , ruby_saml_key , ruby_saml_cert_text )
286+
287+ # verify signature
288+ assert RubySaml ::XML ::SignedDocumentValidator . validate_document ( logout_request_doc . to_s , ruby_saml_cert_fingerprint , soft : false )
322289 end
323290
324- it "sign a LogoutRequest" do
325- logout_request = RubySaml ::Logoutrequest . new
326- logout_request . assign_uuid ( settings )
327- request_doc = logout_request . create_xml_document ( settings )
328-
329- signed_doc = RubySaml ::XML ::DocumentSigner . sign_document (
330- request_doc ,
331- ruby_saml_key ,
332- ruby_saml_cert ,
333- RubySaml ::XML ::RSA_SHA256 ,
334- RubySaml ::XML ::SHA256
335- )
336-
337- # Verify our signature
338- errors = [ ]
339- assert RubySaml ::XML ::SignedDocumentValidator . validate_document (
340- signed_doc . to_s ,
341- ruby_saml_cert_fingerprint ,
342- soft : false
343- )
344-
345- logout_request2 = RubySaml ::Logoutrequest . new
346- logout_request2 . assign_uuid ( settings )
347- request_doc2 = logout_request2 . create_xml_document ( settings )
348-
349- signed_doc2 = RubySaml ::XML ::DocumentSigner . sign_document (
350- request_doc2 ,
351- ruby_saml_key ,
352- ruby_saml_cert_text ,
353- RubySaml ::XML ::RSA_SHA256 ,
354- RubySaml ::XML ::SHA256
355- )
356-
357- # Verify our signature
358- errors2 = [ ]
359- assert RubySaml ::XML ::SignedDocumentValidator . validate_document (
360- signed_doc2 . to_s ,
361- ruby_saml_cert_fingerprint ,
362- soft : false
363- )
291+ it "signs a LogoutResponse with a certificate object" do
292+ logout_response_doc = RubySaml ::SloLogoutresponse . new . create_logout_response_xml_doc ( settings , 'request_id_example' , "Custom Logout Message" )
293+ logout_response_doc = RubySaml ::XML ::DocumentSigner . sign_document ( logout_response_doc , ruby_saml_key , ruby_saml_cert )
294+
295+ # verify signature
296+ assert RubySaml ::XML ::SignedDocumentValidator . validate_document ( logout_response_doc . to_s , ruby_saml_cert_fingerprint , soft : false )
364297 end
365298
366- it "sign a LogoutResponse" do
367- logout_response = RubySaml ::SloLogoutresponse . new
368- logout_response . assign_uuid ( settings )
369- response_doc = logout_response . create_xml_document ( settings , 'request_id_example' , "Custom Logout Message" )
370-
371- signed_doc = RubySaml ::XML ::DocumentSigner . sign_document (
372- response_doc ,
373- ruby_saml_key ,
374- ruby_saml_cert ,
375- RubySaml ::XML ::RSA_SHA256 ,
376- RubySaml ::XML ::SHA256
377- )
378-
379- # Verify our signature
380- assert RubySaml ::XML ::SignedDocumentValidator . validate_document (
381- signed_doc . to_s ,
382- ruby_saml_cert_fingerprint ,
383- soft : false
384- )
385-
386- logout_response2 = RubySaml ::SloLogoutresponse . new
387- logout_response2 . assign_uuid ( settings )
388- response_doc2 = logout_response2 . create_xml_document ( settings , 'request_id_example' , "Custom Logout Message" )
389-
390- signed_doc2 = RubySaml ::XML ::DocumentSigner . sign_document (
391- response_doc2 ,
392- ruby_saml_key ,
393- ruby_saml_cert_text ,
394- RubySaml ::XML ::RSA_SHA256 ,
395- RubySaml ::XML ::SHA256
396- )
397-
398- # Verify our signature
399- assert RubySaml ::XML ::SignedDocumentValidator . validate_document (
400- signed_doc2 . to_s ,
401- ruby_saml_cert_fingerprint ,
402- soft : false
403- )
299+ it "signs a LogoutResponse with a certificate string" do
300+ logout_response_doc = RubySaml ::SloLogoutresponse . new . create_logout_response_xml_doc ( settings , 'request_id_example' , "Custom Logout Message" )
301+ logout_response_doc = RubySaml ::XML ::DocumentSigner . sign_document ( logout_response_doc , ruby_saml_key , ruby_saml_cert_text )
302+
303+ # verify signature
304+ assert RubySaml ::XML ::SignedDocumentValidator . validate_document ( logout_response_doc . to_s , ruby_saml_cert_fingerprint , soft : false )
404305 end
405306 end
406307
@@ -554,7 +455,7 @@ class XmlTest < Minitest::Test
554455 refute RubySaml ::XML ::SignedDocumentValidator . validate_document_with_cert ( document , idp_cert ) . is_a? ( TrueClass ) , 'Document should be valid'
555456 errors = [ ]
556457 RubySaml ::XML ::SignedDocumentValidator . validate_document_with_cert ( document , idp_cert , errors )
557- assert_equal ( [ "Document Certificate Error: PEM_read_bio_X509: no start line " ] , errors )
458+ assert_equal ( [ "Document Certificate Error" ] , errors )
558459 end
559460 end
560461
0 commit comments