Skip to content

Commit 7668721

Browse files
author
Rahul Raina
committed
Adding helper methods to load idp_cert
1 parent 2226201 commit 7668721

File tree

5 files changed

+53
-8
lines changed

5 files changed

+53
-8
lines changed

src/onelogin/saml2/auth.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -605,8 +605,7 @@ def __validate_signature(self, data, saml_type, raise_exceptions=False):
605605
return True
606606

607607
idp_data = self.get_settings().get_idp_data()
608-
609-
exists_x509cert = 'x509cert' in idp_data and idp_data['x509cert']
608+
exists_x509cert = self.get_settings().get_idp_cert() is not None
610609
exists_multix509sign = 'x509certMulti' in idp_data and \
611610
'signing' in idp_data['x509certMulti'] and \
612611
idp_data['x509certMulti']['signing']
@@ -646,7 +645,7 @@ def __validate_signature(self, data, saml_type, raise_exceptions=False):
646645
OneLogin_Saml2_ValidationError.INVALID_SIGNATURE
647646
)
648647
else:
649-
cert = idp_data['x509cert']
648+
cert = self.get_settings().get_idp_cert()
650649

651650
if not OneLogin_Saml2_Utils.validate_binary_sign(signed_query,
652651
OneLogin_Saml2_Utils.b64decode(signature),

src/onelogin/saml2/logout_request.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def __init__(self, settings, request=None, name_id=None, session_index=None, nq=
7272
if exists_multix509enc:
7373
cert = idp_data['x509certMulti']['encryption'][0]
7474
else:
75-
cert = idp_data['x509cert']
75+
cert = self.__settings.get_idp_cert()
7676

7777
if name_id is not None:
7878
if not name_id_format and sp_data['NameIDFormat'] != OneLogin_Saml2_Constants.NAMEID_UNSPECIFIED:

src/onelogin/saml2/response.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ def is_valid(self, request_data, request_id=None, raise_exceptions=False):
293293
OneLogin_Saml2_ValidationError.NO_SIGNATURE_FOUND
294294
)
295295
else:
296-
cert = idp_data.get('x509cert', None)
296+
cert = self.__settings.get_idp_cert()
297297
fingerprint = idp_data.get('certFingerprint', None)
298298
if fingerprint:
299299
fingerprint = OneLogin_Saml2_Utils.format_finger_print(fingerprint)

tests/settings/settings10.json

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"strict": false,
3+
"debug": false,
4+
"sp": {
5+
"entityId": "http://stuff.com/endpoints/metadata.php",
6+
"assertionConsumerService": {
7+
"url": "http://stuff.com/endpoints/endpoints/acs.php"
8+
},
9+
"singleLogoutService": {
10+
"url": "http://stuff.com/endpoints/endpoints/sls.php"
11+
},
12+
"NameIDFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
13+
},
14+
"idp": {
15+
"entityId": "http://idp.example.com/",
16+
"singleSignOnService": {
17+
"url": "http://idp.example.com/SSOService.php"
18+
},
19+
"singleLogoutService": {
20+
"url": "http://idp.example.com/SingleLogoutService.php"
21+
},
22+
"x509cert": "MIICbDCCAdWgAwIBAgIBADANBgkqhkiG9w0BAQ0FADBTMQswCQYDVQQGEwJ1czETMBEGA1UECAwKQ2FsaWZvcm5pYTEVMBMGA1UECgwMT25lbG9naW4gSW5jMRgwFgYDVQQDDA9pZHAuZXhhbXBsZS5jb20wHhcNMTQwOTIzMTIyNDA4WhcNNDIwMjA4MTIyNDA4WjBTMQswCQYDVQQGEwJ1czETMBEGA1UECAwKQ2FsaWZvcm5pYTEVMBMGA1UECgwMT25lbG9naW4gSW5jMRgwFgYDVQQDDA9pZHAuZXhhbXBsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOWA+YHU7cvPOrBOfxCscsYTJB+kH3MaA9BFrSHFS+KcR6cw7oPSktIJxUgvDpQbtfNcOkE/tuOPBDoech7AXfvH6d7Bw7xtW8PPJ2mB5Hn/HGW2roYhxmfh3tR5SdwN6i4ERVF8eLkvwCHsNQyK2Ref0DAJvpBNZMHCpS24916/AgMBAAGjUDBOMB0GA1UdDgQWBBQ77/qVeiigfhYDITplCNtJKZTM8DAfBgNVHSMEGDAWgBQ77/qVeiigfhYDITplCNtJKZTM8DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBDQUAA4GBAJO2j/1uO80E5C2PM6Fk9mzerrbkxl7AZ/mvlbOn+sNZE+VZ1AntYuG8ekbJpJtG1YfRfc7EA9mEtqvv4dhv7zBy4nK49OR+KpIBjItWB5kYvrqMLKBa32sMbgqqUqeF1ENXKjpvLSuPdfGJZA3dNa/+Dyb8GGqWe707zLyc5F8m"
23+
},
24+
"security": {
25+
"authnRequestsSigned": false,
26+
"wantAssertionsSigned": false,
27+
"signMetadata": false
28+
},
29+
"contactPerson": {
30+
"technical": {
31+
"givenName": "technical_name",
32+
"emailAddress": "technical@example.com"
33+
},
34+
"support": {
35+
"givenName": "support_name",
36+
"emailAddress": "support@example.com"
37+
}
38+
},
39+
"organization": {
40+
"en-US": {
41+
"name": "sp_test",
42+
"displayname": "SP test",
43+
"url": "http://sp.example.com"
44+
}
45+
}
46+
}

tests/src/OneLogin/saml2_tests/response_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1473,7 +1473,7 @@ def testIsValid2(self):
14731473
response_2 = OneLogin_Saml2_Response(settings_2, xml_2)
14741474
self.assertTrue(response_2.is_valid(self.get_request_data()))
14751475

1476-
settings_info_3 = self.loadSettingsJSON('settings2.json')
1476+
settings_info_3 = self.loadSettingsJSON('settings10.json')
14771477
idp_cert = OneLogin_Saml2_Utils.format_cert(settings_info_3['idp']['x509cert'])
14781478
settings_info_3['idp']['certFingerprint'] = OneLogin_Saml2_Utils.calculate_x509_fingerprint(idp_cert)
14791479
settings_info_3['idp']['x509cert'] = ''
@@ -1662,7 +1662,7 @@ def testIsValidSignFingerprint(self):
16621662
self.assertFalse(response_9.is_valid(self.get_request_data()))
16631663

16641664
def testMessageSignedIsValidSignWithEmptyReferenceURI(self):
1665-
settings_info = self.loadSettingsJSON()
1665+
settings_info = self.loadSettingsJSON("settings10.json")
16661666
del settings_info['idp']['x509cert']
16671667
settings_info['idp']['certFingerprint'] = "657302a5e11a4794a1e50a705988d66c9377575d"
16681668
settings = OneLogin_Saml2_Settings(settings_info)
@@ -1671,7 +1671,7 @@ def testMessageSignedIsValidSignWithEmptyReferenceURI(self):
16711671
self.assertTrue(response.is_valid(self.get_request_data()))
16721672

16731673
def testAssertionSignedIsValidSignWithEmptyReferenceURI(self):
1674-
settings_info = self.loadSettingsJSON()
1674+
settings_info = self.loadSettingsJSON('settings10.json')
16751675
del settings_info['idp']['x509cert']
16761676
settings_info['idp']['certFingerprint'] = "657302a5e11a4794a1e50a705988d66c9377575d"
16771677
settings = OneLogin_Saml2_Settings(settings_info)

0 commit comments

Comments
 (0)