summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2005-01-21 22:02:56 +0000
committerFrederic Peters <fpeters@entrouvert.com>2005-01-21 22:02:56 +0000
commit8ee6da02dd68911ba397c39f8c97db9b6b0baece (patch)
treebe5fddbdbf0bfbfb185b3df416e33fb905bce35a
parentd8d144f7d0d96c437a81ef52b015345ab27a5084 (diff)
downloadlasso-8ee6da02dd68911ba397c39f8c97db9b6b0baece.tar.gz
lasso-8ee6da02dd68911ba397c39f8c97db9b6b0baece.tar.xz
lasso-8ee6da02dd68911ba397c39f8c97db9b6b0baece.zip
fixed missing provider error code (and used it in other places)
-rw-r--r--lasso/id-ff/login.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index e87eeda0..e51ef1d3 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -468,8 +468,9 @@ lasso_login_build_artifact_msg(LassoLogin *login, LassoHttpMethod http_method)
/* build artifact infos */
remote_provider = g_hash_table_lookup(profile->server->providers,
profile->remote_providerID);
- if (remote_provider == NULL)
- return critical_error(LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID);
+ if (LASSO_IS_PROVIDER(remote_provider) == FALSE)
+ return critical_error(LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND,
+ profile->remote_providerID);
url = lasso_provider_get_assertion_consumer_service_url(remote_provider,
LASSO_LIB_AUTHN_REQUEST(profile->request)->AssertionConsumerServiceID);
@@ -662,6 +663,9 @@ lasso_login_build_authn_response_msg(LassoLogin *login)
remote_provider = g_hash_table_lookup(LASSO_PROFILE(login)->server->providers,
LASSO_PROFILE(login)->remote_providerID);
+ if (LASSO_IS_PROVIDER(remote_provider) == FALSE)
+ return critical_error(LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND,
+ profile->remote_providerID);
profile->msg_url = lasso_provider_get_assertion_consumer_service_url(remote_provider,
LASSO_LIB_AUTHN_REQUEST(profile->request)->AssertionConsumerServiceID);
@@ -818,6 +822,7 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID
LassoHttpMethod http_method)
{
LassoProfile *profile;
+ LassoProvider *remote_provider;
g_return_val_if_fail(LASSO_IS_LOGIN(login), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
@@ -839,6 +844,12 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID
profile->remote_providerID = lasso_server_get_first_providerID(profile->server);
}
+ remote_provider = g_hash_table_lookup(profile->server->providers,
+ profile->remote_providerID);
+ if (LASSO_IS_PROVIDER(remote_provider) == FALSE)
+ return critical_error(LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND,
+ profile->remote_providerID);
+
login->http_method = http_method;
profile->request = LASSO_SAMLP_REQUEST_ABSTRACT(lasso_lib_authn_request_new());
@@ -1181,6 +1192,9 @@ lasso_login_process_authn_response_msg(LassoLogin *login, gchar *authn_response_
remote_provider = g_hash_table_lookup(LASSO_PROFILE(login)->server->providers,
LASSO_PROFILE(login)->remote_providerID);
+ if (LASSO_IS_PROVIDER(remote_provider) == FALSE)
+ return critical_error(LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND,
+ LASSO_PROFILE(login)->remote_providerID);
LASSO_PROFILE(login)->msg_relayState = g_strdup(LASSO_LIB_AUTHN_RESPONSE(
LASSO_PROFILE(login)->response)->RelayState);