@@ -29,7 +29,33 @@ def initialize; end
2929 assert_equal "https://example.hello.com/access/saml/logout" , settings . idp_slo_target_url
3030 assert_equal "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" , settings . name_identifier_format
3131 assert_equal [ "AuthToken" , "SSOStartPage" ] , settings . idp_attribute_names
32+ assert_equal "F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72" , settings . idp_cert_fingerprint
3233 end
34+
35+ it "extract certificate from md:KeyDescriptor[@use='signing']" do
36+ idp_metadata_parser = OneLogin ::RubySaml ::IdpMetadataParser . new
37+ idp_metadata = read_response ( "idp_descriptor.xml" )
38+ settings = idp_metadata_parser . parse ( idp_metadata )
39+ assert_equal "F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72" , settings . idp_cert_fingerprint
40+ end
41+
42+ it "extract certificate from md:KeyDescriptor[@use='encryption']" do
43+ idp_metadata_parser = OneLogin ::RubySaml ::IdpMetadataParser . new
44+ idp_metadata = read_response ( "idp_descriptor.xml" )
45+ idp_metadata = idp_metadata . sub ( /<md:KeyDescriptor use="signing">(.*?)<\/ md:KeyDescriptor>/m , "" )
46+ settings = idp_metadata_parser . parse ( idp_metadata )
47+ assert_equal "F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72" , settings . idp_cert_fingerprint
48+ end
49+
50+ it "extract certificate from md:KeyDescriptor" do
51+ idp_metadata_parser = OneLogin ::RubySaml ::IdpMetadataParser . new
52+ idp_metadata = read_response ( "idp_descriptor.xml" )
53+ idp_metadata = idp_metadata . sub ( /<md:KeyDescriptor use="signing">(.*?)<\/ md:KeyDescriptor>/m , "" )
54+ idp_metadata = idp_metadata . sub ( '<md:KeyDescriptor use="encryption">' , '<md:KeyDescriptor>' )
55+ settings = idp_metadata_parser . parse ( idp_metadata )
56+ assert_equal "F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72" , settings . idp_cert_fingerprint
57+ end
58+
3359 end
3460
3561 describe "download and parse IdP descriptor file" do
0 commit comments