summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2006-11-14 10:36:40 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2006-11-14 10:36:40 +0000
commit45e7e8e448b96f80568028703bc98477f4ad3908 (patch)
tree4b7407212c5a2acf8d7b76c7406812e85a05f7b6
parentd7fe76847480884b000e2caf2ad18d6916a2c500 (diff)
Replaced some LASSO_ERROR_UNDEFINED with real error codes
-rw-r--r--lasso/errors.c6
-rw-r--r--lasso/errors.h3
-rw-r--r--lasso/saml-2.0/login.c14
-rw-r--r--lasso/saml-2.0/profile.c4
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 */