diff options
-rw-r--r-- | lasso/id-ff/login.c | 2 | ||||
-rw-r--r-- | lasso/id-ff/logout.c | 4 | ||||
-rw-r--r-- | lasso/xml/errors.h | 1 | ||||
-rw-r--r-- | swig/Lasso.i | 2 |
4 files changed, 7 insertions, 2 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index a17190b7..57c37e52 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -330,7 +330,7 @@ lasso_login_process_response_status_and_assertion(LassoLogin *login) if (status_value && strcmp(status_value, LASSO_SAML_STATUS_CODE_SUCCESS) != 0) { if (strcmp(status_value, LASSO_SAML_STATUS_CODE_REQUEST_DENIED) == 0) return LASSO_LOGIN_ERROR_REQUEST_DENIED; - return LASSO_ERROR_UNDEFINED; + return LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS; } if (response->Assertion) { diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index cdae1a9d..3628a11f 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -720,8 +720,10 @@ lasso_logout_validate_request(LassoLogout *logout) return LASSO_XML_ERROR_NODE_NOT_FOUND; } - if (profile->session == NULL) + if (profile->session == NULL) { + lasso_profile_set_response_status(profile, LASSO_SAML_STATUS_CODE_REQUEST_DENIED); return critical_error(LASSO_PROFILE_ERROR_SESSION_NOT_FOUND); + } /* verify authentication */ assertion = lasso_session_get_assertion(profile->session, profile->remote_providerID); diff --git a/lasso/xml/errors.h b/lasso/xml/errors.h index e15cfdcd..65eab8de 100644 --- a/lasso/xml/errors.h +++ b/lasso/xml/errors.h @@ -93,6 +93,7 @@ #define LASSO_LOGIN_ERROR_REQUEST_DENIED 604 #define LASSO_LOGIN_ERROR_INVALID_SIGNATURE 605 #define LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST 606 +#define LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS 607 /* Federation Termination Notification */ #define LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER -700 diff --git a/swig/Lasso.i b/swig/Lasso.i index 3f836e60..86c879e7 100644 --- a/swig/Lasso.i +++ b/swig/Lasso.i @@ -549,6 +549,7 @@ typedef enum { %rename(LOGIN_ERROR_REQUEST_DENIE) LASSO_LOGIN_ERROR_REQUEST_DENIE; %rename(LOGIN_ERROR_INVALID_SIGNATURE) LASSO_LOGIN_ERROR_INVALID_SIGNATURE; %rename(LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST) LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST; +%rename(LOGIN_ERROR_STATUS_NOT_SUCCESS) LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS; #endif #define LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND 601 #define LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED 602 @@ -556,6 +557,7 @@ typedef enum { #define LASSO_LOGIN_ERROR_REQUEST_DENIE 604 #define LASSO_LOGIN_ERROR_INVALID_SIGNATURE 605 #define LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST 606 +#define LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS 607 /* Federation Termination Notification */ #ifndef SWIGPHP4 |