Skip to content

Commit d737062

Browse files
committed
Add expected/received in WRONG_ISSUER error
1 parent d0c319d commit d737062

File tree

5 files changed

+19
-7
lines changed

5 files changed

+19
-7
lines changed

src/onelogin/saml2/logout_request.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,11 @@ def is_valid(self, request_data, raise_exceptions=False):
367367
issuer = OneLogin_Saml2_Logout_Request.get_issuer(dom)
368368
if issuer is not None and issuer != idp_entity_id:
369369
raise OneLogin_Saml2_ValidationError(
370-
'Invalid issuer in the Logout Request',
370+
'Invalid issuer in the Logout Request (expected %(idpEntityId)s, got %(issuer)s)' %
371+
{
372+
'idpEntityId': idp_entity_id,
373+
'issuer': issuer
374+
},
371375
OneLogin_Saml2_ValidationError.WRONG_ISSUER
372376
)
373377

src/onelogin/saml2/logout_response.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,11 @@ def is_valid(self, request_data, request_id=None, raise_exceptions=False):
114114
issuer = self.get_issuer()
115115
if issuer is not None and issuer != idp_entity_id:
116116
raise OneLogin_Saml2_ValidationError(
117-
'Invalid issuer in the Logout Request',
117+
'Invalid issuer in the Logout Response (expected %(idpEntityId)s, got %(issuer)s)' %
118+
{
119+
'idpEntityId': idp_entity_id,
120+
'issuer': issuer
121+
},
118122
OneLogin_Saml2_ValidationError.WRONG_ISSUER
119123
)
120124

src/onelogin/saml2/response.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,11 @@ def is_valid(self, request_data, request_id=None, raise_exceptions=False):
224224
for issuer in issuers:
225225
if issuer is None or issuer != idp_entity_id:
226226
raise OneLogin_Saml2_ValidationError(
227-
'Invalid issuer in the Assertion/Response',
227+
'Invalid issuer in the Assertion/Response (expected %(idpEntityId)s, got %(issuer)s)' %
228+
{
229+
'idpEntityId': idp_entity_id,
230+
'issuer': issuer
231+
},
228232
OneLogin_Saml2_ValidationError.WRONG_ISSUER
229233
)
230234

tests/src/OneLogin/saml2_tests/logout_response_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ def testIsInValidIssuer(self):
186186
settings.set_strict(True)
187187
response_2 = OneLogin_Saml2_Logout_Response(settings, message)
188188
self.assertFalse(response_2.is_valid(request_data))
189-
self.assertIn('Invalid issuer in the Logout Request', response_2.get_error())
189+
self.assertIn('Invalid issuer in the Logout Response', response_2.get_error())
190190

191191
def testIsInValidDestination(self):
192192
"""
@@ -272,7 +272,7 @@ def testIsInValidSign(self):
272272
settings.set_strict(True)
273273
response_2 = OneLogin_Saml2_Logout_Response(settings, request_data['get_data']['SAMLResponse'])
274274
self.assertFalse(response_2.is_valid(request_data))
275-
self.assertIn('Invalid issuer in the Logout Request', response_2.get_error())
275+
self.assertIn('Invalid issuer in the Logout Response', response_2.get_error())
276276

277277
settings.set_strict(False)
278278
old_signature = request_data['get_data']['Signature']

tests/src/OneLogin/saml2_tests/response_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,11 +1012,11 @@ def testIsInValidIssuer(self):
10121012
settings.set_strict(True)
10131013
response_3 = OneLogin_Saml2_Response(settings, message)
10141014
self.assertFalse(response_3.is_valid(request_data))
1015-
self.assertEqual('Invalid issuer in the Assertion/Response', response_3.get_error())
1015+
self.assertEqual('Invalid issuer in the Assertion/Response (expected http://idp.example.com/, got http://invalid.issuer.example.com/)', response_3.get_error())
10161016

10171017
response_4 = OneLogin_Saml2_Response(settings, message_2)
10181018
self.assertFalse(response_4.is_valid(request_data))
1019-
self.assertEqual('Invalid issuer in the Assertion/Response', response_4.get_error())
1019+
self.assertEqual('Invalid issuer in the Assertion/Response (expected http://idp.example.com/, got http://invalid.isser.example.com/)', response_4.get_error())
10201020

10211021
def testIsInValidSessionIndex(self):
10221022
"""

0 commit comments

Comments
 (0)