Skip to content

Commit 8959883

Browse files
committed
Related to #31
1 parent 78693f2 commit 8959883

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,7 @@ Main class of OneLogin Python Toolkit
684684
* ***get_nameid*** Returns the nameID.
685685
* ***get_session_index*** Gets the SessionIndex from the AuthnStatement.
686686
* ***get_errors*** Returns a list with code errors if something went wrong.
687+
* ***get_last_error_reason*** Return the reason of the last error
687688
* ***get_sso_url*** Gets the SSO url.
688689
* ***get_slo_url*** Gets the SLO url.
689690
* ***build_request_signature*** Builds the Signature of the SAML Request.

src/onelogin/saml2/auth.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ def __init__(self, request_data, old_settings=None, custom_base_path=None):
5656
self.__session_index = None
5757
self.__authenticated = False
5858
self.__errors = []
59+
self.__error_reason = None
5960

6061
def get_settings(self):
6162
"""
@@ -98,6 +99,7 @@ def process_response(self, request_id=None):
9899

99100
else:
100101
self.__errors.append('invalid_response')
102+
self.__error_reason = response.get_error()
101103

102104
else:
103105
self.__errors.append('invalid_binding')
@@ -124,6 +126,7 @@ def process_slo(self, keep_local_session=False, request_id=None, delete_session_
124126
logout_response = OneLogin_Saml2_Logout_Response(self.__settings, self.__request_data['get_data']['SAMLResponse'])
125127
if not logout_response.is_valid(self.__request_data, request_id):
126128
self.__errors.append('invalid_logout_response')
129+
self.__error_reason = logout_response.get_error()
127130
elif logout_response.get_status() != OneLogin_Saml2_Constants.STATUS_SUCCESS:
128131
self.__errors.append('logout_not_success')
129132
elif not keep_local_session:
@@ -133,6 +136,7 @@ def process_slo(self, keep_local_session=False, request_id=None, delete_session_
133136
logout_request = OneLogin_Saml2_Logout_Request(self.__settings, self.__request_data['get_data']['SAMLRequest'])
134137
if not logout_request.is_valid(self.__request_data):
135138
self.__errors.append('invalid_logout_request')
139+
self.__error_reason = logout_request.get_error()
136140
else:
137141
if not keep_local_session:
138142
OneLogin_Saml2_Utils.delete_local_session(delete_session_cb)
@@ -218,6 +222,15 @@ def get_errors(self):
218222
"""
219223
return self.__errors
220224

225+
def get_last_error_reason(self):
226+
"""
227+
Return the reason for the last error
228+
229+
:returns: Reason of the last error
230+
:rtype: None | string
231+
"""
232+
return self.__error_reason
233+
221234
def get_attribute(self, name):
222235
"""
223236
Returns the requested SAML attribute.

0 commit comments

Comments
 (0)