summaryrefslogtreecommitdiffstats
path: root/lasso/id-ff
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2013-09-26 16:38:05 +0200
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2013-09-27 09:59:44 +0200
commit8d3dc99d8a51e06d8841470601d014b16713ffeb (patch)
treecb026a86d3747bc5142e3664b8721f8331b44369 /lasso/id-ff
parent310e12b2a1671aa1c65c1b48728f2ea9476d59bb (diff)
downloadlasso-8d3dc99d8a51e06d8841470601d014b16713ffeb.tar.gz
lasso-8d3dc99d8a51e06d8841470601d014b16713ffeb.tar.xz
lasso-8d3dc99d8a51e06d8841470601d014b16713ffeb.zip
id-ff/login.c: initialize role status of sp and idp in lasso_login_init_authn_request
Diffstat (limited to 'lasso/id-ff')
-rw-r--r--lasso/id-ff/login.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 601cf125..3210fa04 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -1519,11 +1519,15 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID
{
LassoProfile *profile;
LassoProvider *remote_provider;
+ LassoServer *server = NULL;
LassoSamlpRequestAbstract *request;
+ lasso_error_t rc = 0;
g_return_val_if_fail(LASSO_IS_LOGIN(login), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
profile = LASSO_PROFILE(login);
+ lasso_extract_node_or_fail(server, profile->server, SERVER,
+ LASSO_PROFILE_ERROR_MISSING_SERVER);
/* clean state */
lasso_release_string (profile->remote_providerID);
@@ -1542,6 +1546,9 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID
if (LASSO_IS_PROVIDER(remote_provider) == FALSE)
return critical_error(LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND);
+ remote_provider->role = LASSO_PROVIDER_ROLE_IDP;
+ server->parent.role = LASSO_PROVIDER_ROLE_SP;
+
IF_SAML2(profile) {
return lasso_saml20_login_init_authn_request(login, http_method);
}
@@ -1572,7 +1579,9 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID
lasso_assign_string(LASSO_LIB_AUTHN_REQUEST(profile->request)->RelayState,
profile->msg_relayState);
- return 0;
+cleanup:
+
+ return rc;
}