diff options
author | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-22 01:01:17 +0000 |
---|---|---|
committer | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-22 01:01:17 +0000 |
commit | a9bad780eee30b9275d47ee8aace46cac6b222ff (patch) | |
tree | 1b0ee3774b8aa41e373d53a8350e5efab1338dc8 /lasso/id-ff/login.c | |
parent | f46a076daf3352ecdcd6f274ffb0252f248d4e1b (diff) | |
download | lasso-a9bad780eee30b9275d47ee8aace46cac6b222ff.tar.gz lasso-a9bad780eee30b9275d47ee8aace46cac6b222ff.tar.xz lasso-a9bad780eee30b9275d47ee8aace46cac6b222ff.zip |
*** empty log message ***
Diffstat (limited to 'lasso/id-ff/login.c')
-rw-r--r-- | lasso/id-ff/login.c | 54 |
1 files changed, 14 insertions, 40 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index f9f9d632..333f1fb1 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -64,29 +64,23 @@ lasso_login_add_response_assertion(LassoLogin *login, const gchar *authenticationMethod, const gchar *reauthenticateOnOrAfter) { - xmlChar *providerID, *requestID; - LassoNode *assertion=NULL, *authentication_statement; + LassoNode *assertion = NULL, *authentication_statement; + xmlChar *requestID; gint ret = 0; - providerID = lasso_provider_get_providerID(LASSO_PROVIDER(LASSO_PROFILE_CONTEXT(login)->server)); - if (providerID == NULL) { - debug(ERROR, "The attribute 'ProviderID' is missing in metadata of server.\n"); - return(-1); - } requestID = lasso_node_get_attr_value(LASSO_NODE(LASSO_PROFILE_CONTEXT(login)->request), "RequestID"); - if (providerID == NULL) { + if (requestID == NULL) { debug(ERROR, "The attribute 'RequestID' is missing in request message.\n"); return(-2); } - assertion = lasso_assertion_new(providerID, requestID); - xmlFree(providerID); + assertion = lasso_assertion_new(LASSO_PROFILE_CONTEXT(login)->server->providerID, + requestID); xmlFree(requestID); - authentication_statement = lasso_authentication_statement_new( - authenticationMethod, - reauthenticateOnOrAfter, - LASSO_SAML_NAME_IDENTIFIER(identity->remote_nameIdentifier), - LASSO_SAML_NAME_IDENTIFIER(identity->local_nameIdentifier)); + authentication_statement = lasso_authentication_statement_new(authenticationMethod, + reauthenticateOnOrAfter, + LASSO_SAML_NAME_IDENTIFIER(identity->remote_nameIdentifier), + LASSO_SAML_NAME_IDENTIFIER(identity->local_nameIdentifier)); if (authentication_statement != NULL) { lasso_saml_assertion_add_authenticationStatement(LASSO_SAML_ASSERTION(assertion), LASSO_SAML_AUTHENTICATION_STATEMENT(authentication_statement)); @@ -124,7 +118,7 @@ lasso_login_process_federation(LassoLogin *login) { LassoIdentity *identity; LassoNode *nameIdentifier; - xmlChar *nameIDPolicy, *providerID; + xmlChar *nameIDPolicy; gint ret = 0; /* verify if a user context exists else create it */ @@ -148,16 +142,8 @@ lasso_login_process_federation(LassoLogin *login) /* set local NameIdentifier in identity */ nameIdentifier = lasso_saml_name_identifier_new(lasso_build_unique_id(32)); - providerID = lasso_provider_get_providerID(LASSO_PROVIDER(LASSO_PROFILE_CONTEXT(login)->server)); - /* - if (providerID == NULL) { - ret = LASSO_ERROR_SERVER_PROVIDERID; - debug(ERROR, lasso_error_msg(ret)); - } - */ lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(nameIdentifier), - providerID); - xmlFree(providerID); + LASSO_PROFILE_CONTEXT(login)->server->providerID); lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(nameIdentifier), lassoLibNameIdentifierFormatFederated); lasso_identity_set_local_nameIdentifier(identity, nameIdentifier); @@ -259,7 +245,6 @@ lasso_login_build_artifact_msg(LassoLogin *login, gchar *b64_samlArt, *samlArt, *url; xmlChar *relayState; xmlChar *assertionHandle, *identityProviderSuccinctID; - xmlChar *providerID; /* ProtocolProfile must be BrwsArt */ if (login->protocolProfile != lassoLoginProtocolProfileBrwsArt) { @@ -291,16 +276,14 @@ lasso_login_build_artifact_msg(LassoLogin *login, login->response_dump = lasso_node_export_to_soap(LASSO_PROFILE_CONTEXT(login)->response); debug(DEBUG, "SOAP enveloped Samlp:response = %s\n", LASSO_LOGIN(login)->response_dump); - providerID = lasso_provider_get_providerID(LASSO_PROVIDER(LASSO_PROFILE_CONTEXT(login)->server)); remote_provider = lasso_server_get_provider(LASSO_PROFILE_CONTEXT(login)->server, LASSO_PROFILE_CONTEXT(login)->remote_providerID); /* build artifact infos */ /* liberty-idff-bindings-profiles-v1.2.pdf p.25 */ url = lasso_provider_get_assertionConsumerServiceURL(remote_provider); samlArt = g_new(gchar, 2+20+20+1); - identityProviderSuccinctID = lasso_str_hash(providerID, + identityProviderSuccinctID = lasso_str_hash(LASSO_PROFILE_CONTEXT(login)->server->providerID, LASSO_PROFILE_CONTEXT(login)->server->private_key); - xmlFree(providerID); assertionHandle = lasso_build_random_sequence(20); sprintf(samlArt, "%c%c%s%s", 0, 3, identityProviderSuccinctID, assertionHandle); g_free(assertionHandle); @@ -598,19 +581,10 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID) { LassoProvider *server; - gchar *local_providerID; g_return_val_if_fail(remote_providerID != NULL, -1); - - server = LASSO_PROVIDER(LASSO_PROFILE_CONTEXT(login)->server); - local_providerID = lasso_provider_get_providerID(server); - if (local_providerID == NULL) { - debug(ERROR, "The attribute 'ProviderID' is missing in metadata of server"); - return (-1); - } - LASSO_PROFILE_CONTEXT(login)->request = lasso_authn_request_new(local_providerID); - g_free(local_providerID); + LASSO_PROFILE_CONTEXT(login)->request = lasso_authn_request_new(LASSO_PROFILE_CONTEXT(login)->server->providerID); LASSO_PROFILE_CONTEXT(login)->request_type = lassoMessageTypeAuthnRequest; LASSO_PROFILE_CONTEXT(login)->remote_providerID = g_strdup(remote_providerID); @@ -664,7 +638,7 @@ lasso_login_init_from_authn_request_msg(LassoLogin *login, switch (login->protocolProfile) { case lassoLoginProtocolProfileBrwsPost: /* create LibAuthnResponse */ - LASSO_PROFILE_CONTEXT(login)->response = lasso_authn_response_new(lasso_provider_get_providerID(LASSO_PROVIDER(server)), + LASSO_PROFILE_CONTEXT(login)->response = lasso_authn_response_new(LASSO_PROFILE_CONTEXT(login)->server->providerID, LASSO_PROFILE_CONTEXT(login)->request); LASSO_PROFILE_CONTEXT(login)->response_type = lassoMessageTypeAuthnResponse; break; |