diff options
| author | Damien Laniel <dlaniel@entrouvert.com> | 2006-11-14 10:36:40 +0000 |
|---|---|---|
| committer | Damien Laniel <dlaniel@entrouvert.com> | 2006-11-14 10:36:40 +0000 |
| commit | 45e7e8e448b96f80568028703bc98477f4ad3908 (patch) | |
| tree | 4b7407212c5a2acf8d7b76c7406812e85a05f7b6 | |
| parent | d7fe76847480884b000e2caf2ad18d6916a2c500 (diff) | |
Replaced some LASSO_ERROR_UNDEFINED with real error codes
| -rw-r--r-- | lasso/errors.c | 6 | ||||
| -rw-r--r-- | lasso/errors.h | 3 | ||||
| -rw-r--r-- | lasso/saml-2.0/login.c | 14 | ||||
| -rw-r--r-- | lasso/saml-2.0/profile.c | 4 |
4 files changed, 18 insertions, 9 deletions
diff --git a/lasso/errors.c b/lasso/errors.c index f6f1b00a..f51e72e7 100644 --- a/lasso/errors.c +++ b/lasso/errors.c @@ -137,6 +137,12 @@ lasso_strerror(int error_code) return "Missing service type"; case LASSO_PROFILE_ERROR_MISSING_ASSERTION: return "Missing assertion"; + case LASSO_PROFILE_ERROR_MISSING_SUBJECT: + return "Missing subject"; + case LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER: + return "Missing name identifier"; + case LASSO_PROFILE_ERROR_INVALID_ARTIFACT: + return "Invalid artifact"; case LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ: return "An object type provided as parameter "\ diff --git a/lasso/errors.h b/lasso/errors.h index e2c3aa4a..6c9a7fde 100644 --- a/lasso/errors.h +++ b/lasso/errors.h @@ -91,6 +91,9 @@ #define LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION 425 #define LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE 426 #define LASSO_PROFILE_ERROR_MISSING_ASSERTION -427 +#define LASSO_PROFILE_ERROR_MISSING_SUBJECT -428 +#define LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER -429 +#define LASSO_PROFILE_ERROR_INVALID_ARTIFACT -430 /* functions/methods parameters checking */ #define LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ -501 diff --git a/lasso/saml-2.0/login.c b/lasso/saml-2.0/login.c index 033f543d..2b603772 100644 --- a/lasso/saml-2.0/login.c +++ b/lasso/saml-2.0/login.c @@ -782,22 +782,22 @@ lasso_saml20_login_process_response_status_and_assertion(LassoLogin *login) LassoProfile *profile = LASSO_PROFILE(login); LassoSaml2Assertion *assertion = LASSO_SAMLP2_RESPONSE(response)->Assertion->data; if (profile->remote_providerID == NULL) - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID; idp = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (idp == NULL) - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID; /* FIXME: verify assertion signature */ /* store NameIdentifier */ if (assertion->Subject == NULL) { - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_MISSING_SUBJECT; } profile->nameIdentifier = g_object_ref(assertion->Subject->NameID); if (LASSO_PROFILE(login)->nameIdentifier == NULL) - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER; } return ret; @@ -814,11 +814,11 @@ lasso_saml20_login_accept_sso(LassoLogin *login) profile = LASSO_PROFILE(login); if (LASSO_SAMLP2_RESPONSE(profile->response)->Assertion == NULL) - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_MISSING_ASSERTION; assertion = LASSO_SAMLP2_RESPONSE(profile->response)->Assertion->data; if (assertion == NULL) - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_MISSING_ASSERTION; lasso_session_add_assertion(profile->session, profile->remote_providerID, g_object_ref(assertion)); @@ -826,7 +826,7 @@ lasso_saml20_login_accept_sso(LassoLogin *login) ni = assertion->Subject->NameID; if (ni == NULL) - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER; /* create federation, only if nameidentifier format is Federated */ diff --git a/lasso/saml-2.0/profile.c b/lasso/saml-2.0/profile.c index 1d9087c0..2c207378 100644 --- a/lasso/saml-2.0/profile.c +++ b/lasso/saml-2.0/profile.c @@ -159,12 +159,12 @@ lasso_saml20_profile_init_artifact_resolve(LassoProfile *profile, i = xmlSecBase64Decode((xmlChar*)artifact_b64, (xmlChar*)artifact, 45); if (i < 0 || i > 44) { g_free(artifact_b64); - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_INVALID_ARTIFACT; } if (artifact[0] != 0 || artifact[1] != 4) { /* wrong type code */ g_free(artifact_b64); - return LASSO_ERROR_UNDEFINED; + return LASSO_PROFILE_ERROR_INVALID_ARTIFACT; } /* XXX: index endpoint */ |
