summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2004-12-08 22:07:34 +0000
committerFrederic Peters <fpeters@entrouvert.com>2004-12-08 22:07:34 +0000
commit9785f3d191b3de0771263efb8d22bb6d4e855fa2 (patch)
tree6ecd949271af549eb5d1be4da3d1134f1f2f5818
parent4180c524aa5c817e279765ba8c423b01c875e4a2 (diff)
downloadlasso-9785f3d191b3de0771263efb8d22bb6d4e855fa2.tar.gz
lasso-9785f3d191b3de0771263efb8d22bb6d4e855fa2.tar.xz
lasso-9785f3d191b3de0771263efb8d22bb6d4e855fa2.zip
force role as service provider in lasso_login_build_authn_request_msg
(closes: 382)
-rw-r--r--lasso/id-ff/login.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index f8e896fa..46b45486 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -574,6 +574,7 @@ lasso_login_build_authn_request_msg(LassoLogin *login, const gchar *remote_provi
{
LassoProvider *provider, *remote_provider;
char *md_authnRequestsSigned, *url, *query, *lareq, *protocolProfile;
+ LassoProviderRole role;
gboolean must_sign;
gint ret = 0;
@@ -597,8 +598,12 @@ lasso_login_build_authn_request_msg(LassoLogin *login, const gchar *remote_provi
if (protocolProfile == NULL)
protocolProfile = LASSO_LIB_PROTOCOL_PROFILE_BRWS_ART;
+ role = provider->role;
+ provider->role = LASSO_PROVIDER_ROLE_SP; /* we act as an SP for sure here */
+
if (lasso_provider_has_protocol_profile(remote_provider,
LASSO_MD_PROTOCOL_TYPE_SINGLE_SIGN_ON, protocolProfile) == FALSE) {
+ provider->role = role;
return LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE;
}
@@ -606,6 +611,7 @@ lasso_login_build_authn_request_msg(LassoLogin *login, const gchar *remote_provi
md_authnRequestsSigned = lasso_provider_get_metadata_one(provider, "AuthnRequestsSigned");
must_sign = (md_authnRequestsSigned && strcmp(md_authnRequestsSigned, "true") == 0);
g_free(md_authnRequestsSigned);
+ provider->role = role;
if (login->http_method == LASSO_HTTP_METHOD_REDIRECT) {
/* REDIRECT -> query */
@@ -614,8 +620,8 @@ lasso_login_build_authn_request_msg(LassoLogin *login, const gchar *remote_provi
LASSO_PROFILE(login)->server->signature_method,
LASSO_PROFILE(login)->server->private_key);
} else {
- query = lasso_node_export_to_query(LASSO_PROFILE(login)->request,
- 0, NULL);
+ query = lasso_node_export_to_query(
+ LASSO_PROFILE(login)->request, 0, NULL);
}
if (query == NULL) {
message(G_LOG_LEVEL_CRITICAL, "Failed to create AuthnRequest query");