diff options
author | Valery Febvre <vfebvre at easter-eggs.com> | 2004-08-09 14:45:39 +0000 |
---|---|---|
committer | Valery Febvre <vfebvre at easter-eggs.com> | 2004-08-09 14:45:39 +0000 |
commit | b13decd314a04547ae1f1d8e0ab56ed767109cf4 (patch) | |
tree | 7f589e1ef3869bb0da3f453b1085700a3e41f1c3 /lasso | |
parent | 7c34b0d38b3948cfb7b0c0c9ac26853e33820263 (diff) | |
download | lasso-b13decd314a04547ae1f1d8e0ab56ed767109cf4.tar.gz lasso-b13decd314a04547ae1f1d8e0ab56ed767109cf4.tar.xz lasso-b13decd314a04547ae1f1d8e0ab56ed767109cf4.zip |
Removed Base64 encoding in lasso_lecp_build_authn_response_msg()
Removed Base64 decoding in lasso_lecp_process_authn_request_envelope_msg()
Removed the param 'remote_providerID' of lasso_lecp_init_authn_request()
Added a param 'remote_providerID' in lasso_lecp_build_authn_request_msg()
Added 3 params in lasso_lecp_build_authn_response_envelope_msg()
They are necessary to build the Assertion, to process the federation and
possibly to set the Status.
Diffstat (limited to 'lasso')
-rw-r--r-- | lasso/id-ff/lecp.c | 32 | ||||
-rw-r--r-- | lasso/id-ff/lecp.h | 13 |
2 files changed, 30 insertions, 15 deletions
diff --git a/lasso/id-ff/lecp.c b/lasso/id-ff/lecp.c index 6f6edcae..5513b8e9 100644 --- a/lasso/id-ff/lecp.c +++ b/lasso/id-ff/lecp.c @@ -73,7 +73,8 @@ lasso_lecp_build_authn_request_envelope_msg(LassoLecp *lecp) } gint -lasso_lecp_build_authn_request_msg(LassoLecp *lecp) +lasso_lecp_build_authn_request_msg(LassoLecp *lecp, + const gchar *remote_providerID) { LassoProfile *profile; @@ -81,7 +82,7 @@ lasso_lecp_build_authn_request_msg(LassoLecp *lecp) profile = LASSO_PROFILE(lecp); - profile->msg_url = NULL; /* Proxy knows the SOAP EndPoint of the IDP */ + profile->msg_url = NULL; /* FIXME use remote_providerID to get url */ profile->msg_body = lasso_node_export_to_soap(profile->request); if (profile->msg_body == NULL) { message(G_LOG_LEVEL_CRITICAL, "Error while building the AuthnRequest SOAP message\n"); @@ -104,9 +105,9 @@ lasso_lecp_build_authn_response_msg(LassoLecp *lecp) message(G_LOG_LEVEL_CRITICAL, "AssertionConsumerServiceURL not found\n"); return(-1); } - profile->msg_body = lasso_node_export_to_base64(profile->response); + profile->msg_body = lasso_node_export(profile->response); if (profile->msg_body == NULL) { - message(G_LOG_LEVEL_CRITICAL, "AuthnResponse base64 msg not found\n"); + message(G_LOG_LEVEL_CRITICAL, "AuthnResponse msg not found\n"); return(-1); } @@ -114,7 +115,10 @@ lasso_lecp_build_authn_response_msg(LassoLecp *lecp) } gint -lasso_lecp_build_authn_response_envelope_msg(LassoLecp *lecp) +lasso_lecp_build_authn_response_envelope_msg(LassoLecp *lecp, + gint authentication_result, + const gchar *authenticationMethod, + const gchar *reauthenticateOnOrAfter) { LassoProfile *profile; LassoProvider *provider; @@ -135,6 +139,12 @@ lasso_lecp_build_authn_response_envelope_msg(LassoLecp *lecp) return(-1); } + /* build lib:AuthnResponse */ + lasso_login_build_authn_response_msg(LASSO_LOGIN(lecp), + authentication_result, + authenticationMethod, + reauthenticateOnOrAfter); + assertionConsumerServiceURL = lasso_provider_get_assertionConsumerServiceURL(provider, lassoProviderTypeSp, NULL); @@ -143,9 +153,12 @@ lasso_lecp_build_authn_response_envelope_msg(LassoLecp *lecp) return(-1); } + xmlFree(LASSO_PROFILE(lecp)->msg_body); + LASSO_PROFILE(lecp)->msg_body = NULL; + xmlFree(LASSO_PROFILE(lecp)->msg_url); + LASSO_PROFILE(lecp)->msg_url = NULL; lecp->authnResponseEnvelope = lasso_authn_response_envelope_new(LASSO_AUTHN_RESPONSE(profile->response), assertionConsumerServiceURL); - LASSO_PROFILE(lecp)->msg_body = lasso_node_export_to_soap(lecp->authnResponseEnvelope); if (LASSO_PROFILE(lecp)->msg_body == NULL) { @@ -157,14 +170,13 @@ lasso_lecp_build_authn_response_envelope_msg(LassoLecp *lecp) } gint -lasso_lecp_init_authn_request(LassoLecp *lecp, - const gchar *remote_providerID) +lasso_lecp_init_authn_request(LassoLecp *lecp) { gint res; g_return_val_if_fail(LASSO_IS_LECP(lecp), -1); - res = lasso_login_init_authn_request(LASSO_LOGIN(lecp), remote_providerID); + res = lasso_login_init_authn_request(LASSO_LOGIN(lecp)); return(res); } @@ -194,7 +206,7 @@ lasso_lecp_process_authn_request_envelope_msg(LassoLecp *lecp, g_return_val_if_fail(LASSO_IS_LECP(lecp), -1); g_return_val_if_fail(request_msg!=NULL, -1); - lecp->authnRequestEnvelope = lasso_authn_request_envelope_new_from_export(request_msg, lassoNodeExportTypeBase64); + lecp->authnRequestEnvelope = lasso_authn_request_envelope_new_from_export(request_msg, lassoNodeExportTypeXml); if (lecp->authnRequestEnvelope == NULL) { message(G_LOG_LEVEL_CRITICAL, "Error while building the authentication request envelope\n"); return(-1); diff --git a/lasso/id-ff/lecp.h b/lasso/id-ff/lecp.h index 688bb881..98524009 100644 --- a/lasso/id-ff/lecp.h +++ b/lasso/id-ff/lecp.h @@ -69,16 +69,19 @@ LASSO_EXPORT LassoLecp* lasso_lecp_new (LassoSer LASSO_EXPORT gint lasso_lecp_build_authn_request_envelope_msg (LassoLecp *lecp); -LASSO_EXPORT gint lasso_lecp_build_authn_request_msg (LassoLecp *lecp); +LASSO_EXPORT gint lasso_lecp_build_authn_request_msg (LassoLecp *lecp, + const gchar *remote_providerID); -LASSO_EXPORT gint lasso_lecp_build_authn_response_msg (LassoLecp *lecp); +LASSO_EXPORT gint lasso_lecp_build_authn_response_msg (LassoLecp *lecp); -LASSO_EXPORT gint lasso_lecp_build_authn_response_envelope_msg (LassoLecp *lecp); +LASSO_EXPORT gint lasso_lecp_build_authn_response_envelope_msg (LassoLecp *lecp, + gint authentication_result, + const gchar *authenticationMethod, + const gchar *reauthenticateOnOrAfter); LASSO_EXPORT void lasso_lecp_destroy (LassoLecp *lecp); -LASSO_EXPORT gint lasso_lecp_init_authn_request (LassoLecp *lecp, - const gchar *remote_providerID); +LASSO_EXPORT gint lasso_lecp_init_authn_request (LassoLecp *lecp); LASSO_EXPORT gint lasso_lecp_init_from_authn_request_msg (LassoLecp *lecp, gchar *authn_request_msg, |