summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-ff/login.c2
-rw-r--r--lasso/id-ff/logout.c4
-rw-r--r--lasso/xml/errors.h1
-rw-r--r--swig/Lasso.i2
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