diff options
author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2013-09-26 16:38:05 +0200 |
---|---|---|
committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2013-09-27 09:59:44 +0200 |
commit | 8d3dc99d8a51e06d8841470601d014b16713ffeb (patch) | |
tree | cb026a86d3747bc5142e3664b8721f8331b44369 /lasso/id-ff | |
parent | 310e12b2a1671aa1c65c1b48728f2ea9476d59bb (diff) | |
download | lasso-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.c | 11 |
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; } |