summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2004-12-13 18:39:49 +0000
committerFrederic Peters <fpeters@entrouvert.com>2004-12-13 18:39:49 +0000
commita5a8ff207f0d7af6f49a94aefe0d930e5022ff10 (patch)
tree6e6ebba15507347a37861a45950093ced4ff5f57
parent2e2f599a163d2f535a0836d620f9cac318a3d46e (diff)
downloadlasso-a5a8ff207f0d7af6f49a94aefe0d930e5022ff10.tar.gz
lasso-a5a8ff207f0d7af6f49a94aefe0d930e5022ff10.tar.xz
lasso-a5a8ff207f0d7af6f49a94aefe0d930e5022ff10.zip
more error code harmonization.
-rw-r--r--lasso/id-ff/login.c9
-rw-r--r--lasso/id-ff/logout.c6
-rw-r--r--lasso/id-ff/name_identifier_mapping.c14
-rw-r--r--lasso/id-ff/name_registration.c20
-rw-r--r--lasso/xml/errors.c2
5 files changed, 24 insertions, 27 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 91a5aeb6..836bcfe5 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -1207,7 +1207,8 @@ lasso_login_process_authn_response_msg(LassoLogin *login, gchar *authn_response_
LASSO_LIB_AUTHN_RESPONSE(LASSO_PROFILE(login)->response)->ProviderID);
if (LASSO_PROFILE(login)->remote_providerID == NULL) {
- message(G_LOG_LEVEL_CRITICAL, "XXX");
+ ret1 = error_code(G_LOG_LEVEL_CRITICAL,
+ lasso_strerror(LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND));
}
remote_provider = g_hash_table_lookup(LASSO_PROFILE(login)->server->providers,
@@ -1216,10 +1217,12 @@ lasso_login_process_authn_response_msg(LassoLogin *login, gchar *authn_response_
LASSO_PROFILE(login)->msg_relayState = g_strdup(LASSO_LIB_AUTHN_RESPONSE(
LASSO_PROFILE(login)->response)->RelayState);
- ret1 = lasso_provider_verify_signature(remote_provider,
- authn_response_msg, "ResponseID", format);
+ LASSO_PROFILE(login)->signature_status = lasso_provider_verify_signature(
+ remote_provider, authn_response_msg, "ResponseID", format);
ret2 = lasso_login_process_response_status_and_assertion(login);
+ /* XXX: and what about signature_status ? Shouldn't it return error on
+ * failure ? */
return ret2 == 0 ? ret1 : ret2;
}
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 9171054c..3a821368 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -416,8 +416,7 @@ gint lasso_logout_process_request_msg(LassoLogout *logout, char *request_msg)
profile->request = lasso_lib_logout_request_new();
format = lasso_node_init_from_message(profile->request, request_msg);
if (format == LASSO_MESSAGE_FORMAT_UNKNOWN || format == LASSO_MESSAGE_FORMAT_ERROR) {
- message(G_LOG_LEVEL_CRITICAL, "XXX");
- return LASSO_PROFILE_ERROR_INVALID_MSG;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_INVALID_MSG);
}
remote_provider = g_hash_table_lookup(profile->server->providers,
@@ -489,8 +488,7 @@ lasso_logout_process_response_msg(LassoLogout *logout, gchar *response_msg)
profile->response = lasso_lib_logout_response_new();
format = lasso_node_init_from_message(profile->response, response_msg);
if (format == LASSO_MESSAGE_FORMAT_UNKNOWN || format == LASSO_MESSAGE_FORMAT_ERROR) {
- message(G_LOG_LEVEL_CRITICAL, "XXX");
- return LASSO_PROFILE_ERROR_INVALID_MSG;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_INVALID_MSG);
}
if (format == LASSO_MESSAGE_FORMAT_SOAP)
diff --git a/lasso/id-ff/name_identifier_mapping.c b/lasso/id-ff/name_identifier_mapping.c
index c353672c..3e52d617 100644
--- a/lasso/id-ff/name_identifier_mapping.c
+++ b/lasso/id-ff/name_identifier_mapping.c
@@ -210,15 +210,15 @@ lasso_name_identifier_mapping_process_request_msg(LassoNameIdentifierMapping *ma
profile->request = lasso_lib_name_identifier_mapping_request_new();
format = lasso_node_init_from_message(profile->request, request_msg);
if (format == LASSO_MESSAGE_FORMAT_UNKNOWN || format == LASSO_MESSAGE_FORMAT_ERROR) {
- message(G_LOG_LEVEL_CRITICAL, "XXX");
- return LASSO_PROFILE_ERROR_INVALID_MSG;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_INVALID_MSG);
}
remote_provider = g_hash_table_lookup(profile->server->providers,
LASSO_LIB_NAME_IDENTIFIER_MAPPING_REQUEST(profile->request)->ProviderID);
if (LASSO_IS_PROVIDER(remote_provider) == FALSE) {
- message(G_LOG_LEVEL_CRITICAL, "Unknown provider");
- return -1;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND,
+ LASSO_LIB_NAME_IDENTIFIER_MAPPING_REQUEST(
+ profile->request)->ProviderID);
}
profile->remote_providerID = g_strdup(remote_provider->ProviderID);
@@ -227,8 +227,7 @@ lasso_name_identifier_mapping_process_request_msg(LassoNameIdentifierMapping *ma
remote_provider,
LASSO_MD_PROTOCOL_TYPE_NAME_IDENTIFIER_MAPPING,
LASSO_HTTP_METHOD_REDIRECT, FALSE) == FALSE ) {
- message(G_LOG_LEVEL_CRITICAL, "unsupported profile!");
- return LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE);
}
/* verify signature */
@@ -262,8 +261,7 @@ lasso_name_identifier_mapping_process_response_msg(LassoNameIdentifierMapping *m
profile->response = lasso_lib_name_identifier_mapping_response_new();
format = lasso_node_init_from_message(profile->response, response_msg);
if (format == LASSO_MESSAGE_FORMAT_UNKNOWN || format == LASSO_MESSAGE_FORMAT_ERROR) {
- message(G_LOG_LEVEL_CRITICAL, "XXX");
- return LASSO_PROFILE_ERROR_INVALID_MSG;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_INVALID_MSG);
}
remote_provider = g_hash_table_lookup(profile->server->providers,
diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c
index a9e1e850..f5faab79 100644
--- a/lasso/id-ff/name_registration.c
+++ b/lasso/id-ff/name_registration.c
@@ -100,8 +100,7 @@ lasso_name_registration_build_request_msg(LassoNameRegistration *name_registrati
return 0;
}
- message(G_LOG_LEVEL_CRITICAL, "Invalid http method");
- return LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD);
}
gint
@@ -152,8 +151,7 @@ lasso_name_registration_build_response_msg(LassoNameRegistration *name_registrat
return 0;
}
- message(G_LOG_LEVEL_CRITICAL, "Invalid HTTP request method");
- return LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD);
}
void
@@ -303,15 +301,15 @@ gint lasso_name_registration_process_request_msg(LassoNameRegistration *name_reg
profile->request = lasso_lib_register_name_identifier_request_new();
format = lasso_node_init_from_message(profile->request, request_msg);
if (format == LASSO_MESSAGE_FORMAT_UNKNOWN || format == LASSO_MESSAGE_FORMAT_ERROR) {
- message(G_LOG_LEVEL_CRITICAL, "XXX");
- return LASSO_PROFILE_ERROR_INVALID_MSG;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_INVALID_MSG);
}
remote_provider = g_hash_table_lookup(profile->server->providers,
LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(profile->request)->ProviderID);
if (LASSO_IS_PROVIDER(remote_provider) == FALSE) {
- message(G_LOG_LEVEL_CRITICAL, "Unknown provider");
- return -1;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND,
+ LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(
+ profile->request)->ProviderID);
}
if (format == LASSO_MESSAGE_FORMAT_SOAP)
@@ -323,8 +321,7 @@ gint lasso_name_registration_process_request_msg(LassoNameRegistration *name_reg
remote_provider,
LASSO_MD_PROTOCOL_TYPE_REGISTER_NAME_IDENTIFIER,
profile->http_request_method, FALSE) == FALSE) {
- message(G_LOG_LEVEL_CRITICAL, "XXX");
- return LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE);
}
nameIdentifier = LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(
@@ -375,8 +372,7 @@ lasso_name_registration_process_response_msg(LassoNameRegistration *name_registr
profile->response = lasso_lib_register_name_identifier_response_new();
format = lasso_node_init_from_message(profile->response, response_msg);
if (format == LASSO_MESSAGE_FORMAT_UNKNOWN || format == LASSO_MESSAGE_FORMAT_ERROR) {
- message(G_LOG_LEVEL_CRITICAL, "XXX");
- return LASSO_PROFILE_ERROR_INVALID_MSG;
+ return error_code(G_LOG_LEVEL_CRITICAL, LASSO_PROFILE_ERROR_INVALID_MSG);
}
if (format == LASSO_MESSAGE_FORMAT_SOAP)
response_method = LASSO_HTTP_METHOD_SOAP;
diff --git a/lasso/xml/errors.c b/lasso/xml/errors.c
index 28e2b773..003142d3 100644
--- a/lasso/xml/errors.c
+++ b/lasso/xml/errors.c
@@ -67,6 +67,8 @@ lasso_strerror(int error_code)
return "Failed to add new provider.";
case LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE:
return "Unsupported logout protocol profile";
+ case LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE:
+ return "Unsupported protocol profile";
case LASSO_PROFILE_ERROR_INVALID_QUERY:
return "Invalid URL query";
case LASSO_PROFILE_ERROR_INVALID_POST_MSG: