Skip to content

Commit bbbc6fb

Browse files
authored
Add details to IdentityRetrievalFailed exception (#97)
1 parent 503850a commit bbbc6fb

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

CHANGES.rst

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Version 0.6
88
- Remove upper version pins of dependencies
99
- Support friendly names for SAML assertions (set ``'saml_friendly_names': True``
1010
in the auth provider settings)
11+
- Include more verbose authentication data in ``IdentityRetrievalFailed`` exception details
1112

1213
Version 0.5.6
1314
-------------

flask_multipass/providers/authlib.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,5 +174,5 @@ def get_identity_from_auth(self, auth_info):
174174
identifier = auth_info.data.get(self.id_field)
175175
if not identifier:
176176
raise IdentityRetrievalFailed(f'Identifier ({self.id_field}) missing in authlib response',
177-
provider=self)
177+
details=auth_info.data, provider=self)
178178
return IdentityInfo(self, identifier=identifier, **auth_info.data)

flask_multipass/providers/saml.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,10 @@ def get_identity_from_auth(self, auth_info):
191191
identifier = auth_info.data.get(self.id_field)
192192
if isinstance(identifier, list):
193193
if len(identifier) != 1:
194-
raise IdentityRetrievalFailed('Identifier has multiple elements', provider=self)
194+
raise IdentityRetrievalFailed('Identifier has multiple elements',
195+
details=identifier, provider=self)
195196
identifier = identifier[0]
196197
if not identifier:
197-
raise IdentityRetrievalFailed('Identifier missing in saml response', provider=self)
198+
raise IdentityRetrievalFailed('Identifier missing in saml response',
199+
details=auth_info.data, provider=self)
198200
return IdentityInfo(self, identifier=identifier, **auth_info.data)

flask_multipass/providers/shibboleth.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,6 @@ def __init__(self, *args, **kwargs):
8686
def get_identity_from_auth(self, auth_info):
8787
identifier = auth_info.data.get(self.id_field)
8888
if not identifier:
89-
raise IdentityRetrievalFailed('Identifier missing in shibboleth response', provider=self)
89+
raise IdentityRetrievalFailed('Identifier missing in shibboleth response',
90+
details=auth_info.data, provider=self)
9091
return IdentityInfo(self, identifier=identifier, **auth_info.data)

0 commit comments

Comments
 (0)