replace load_request_msg() with process_request_msg(), process_request() with validate_request(), remove assertion of the authenticated principal in validate_request()

This commit is contained in:
Nicolas Clapies 2004-08-03 15:27:26 +00:00
parent d5dc250c35
commit 638371bb15
6 changed files with 30 additions and 37 deletions

View File

@ -277,9 +277,9 @@ lasso_logout_init_request(LassoLogout *logout,
return(0);
}
gint lasso_logout_load_request_msg(LassoLogout *logout,
gchar *request_msg,
lassoHttpMethods request_method)
gint lasso_logout_process_request_msg(LassoLogout *logout,
gchar *request_msg,
lassoHttpMethods request_method)
{
LassoProfile *profile;
@ -325,7 +325,7 @@ gint lasso_logout_load_request_msg(LassoLogout *logout,
}
gint
lasso_logout_process_request(LassoLogout *logout)
lasso_logout_validate_request(LassoLogout *logout)
{
LassoProfile *profile;
LassoFederation *federation;
@ -409,28 +409,16 @@ lasso_logout_process_request(LassoLogout *logout)
}
/* verification is ok, save name identifier in logout object */
switch(profile->provider_type) {
case lassoProviderTypeSp:
/* at sp, everything is ok, delete the assertion */
lasso_session_remove_assertion(profile->session, profile->remote_providerID);
break;
case lassoProviderTypeIdp:
/* if more than one sp registered, backup original infos of the sp requester */
/* FIXME : get the nb of remote providers with a proper way */
lasso_session_remove_assertion(profile->session, profile->remote_providerID);
if(profile->provider_type==lassoProviderTypeIdp){
logout->initial_remote_providerID = g_strdup(profile->remote_providerID);
if(profile->session->providerIDs->len>1){
logout->initial_request = profile->request;
profile->request = NULL;
logout->initial_response = profile->response;
profile->response = NULL;
profile->remote_providerID = NULL;
}
break;
default:
message(G_LOG_LEVEL_CRITICAL, "Uknown provider type\n");
}
return(0);

View File

@ -78,11 +78,11 @@ LASSO_EXPORT gchar* lasso_logout_get_next_providerID (LassoLogout *log
LASSO_EXPORT gint lasso_logout_init_request (LassoLogout *logout,
gchar *remote_providerID);
LASSO_EXPORT gint lasso_logout_load_request_msg (LassoLogout *logout,
LASSO_EXPORT gint lasso_logout_process_request_msg (LassoLogout *logout,
gchar *request_msg,
lassoHttpMethods request_method);
LASSO_EXPORT gint lasso_logout_process_request (LassoLogout *logout);
LASSO_EXPORT gint lasso_logout_validate_request (LassoLogout *logout);
LASSO_EXPORT gint lasso_logout_process_response_msg (LassoLogout *logout,
gchar *response_msg,

View File

@ -174,36 +174,36 @@ PyObject *logout_init_request(PyObject *self, PyObject *args) {
return(int_wrap(codeError));
}
PyObject *logout_load_request_msg(PyObject *self, PyObject *args){
PyObject *logout_process_request_msg(PyObject *self, PyObject *args){
PyObject *logout_obj;
gchar *request_msg;
gint request_method;
gint codeError;
if (CheckArgs(args, "OSI:logout_load_request_msg")) {
if(!PyArg_ParseTuple(args, (char *) "Osi:logout_load_request_msg",
if (CheckArgs(args, "OSI:logout_process_request_msg")) {
if(!PyArg_ParseTuple(args, (char *) "Osi:logout_process_request_msg",
&logout_obj, &request_msg, &request_method))
return NULL;
}
else return NULL;
codeError = lasso_logout_load_request_msg(LassoLogout_get(logout_obj), request_msg, request_method);
codeError = lasso_logout_process_request_msg(LassoLogout_get(logout_obj), request_msg, request_method);
return(int_wrap(codeError));
}
PyObject *logout_process_request(PyObject *self, PyObject *args) {
PyObject *logout_validate_request(PyObject *self, PyObject *args) {
PyObject *logout_obj;
gint codeError;
if (CheckArgs(args, "O:logout_process_request")) {
if(!PyArg_ParseTuple(args, (char *) "O:logout_process_request",
if (CheckArgs(args, "O:logout_validate_request")) {
if(!PyArg_ParseTuple(args, (char *) "O:logout_validate_request",
&logout_obj))
return NULL;
}
else return NULL;
codeError = lasso_logout_process_request(LassoLogout_get(logout_obj));
codeError = lasso_logout_vallidate_request(LassoLogout_get(logout_obj));
return(int_wrap(codeError));
}

View File

@ -46,9 +46,9 @@ PyObject *logout_build_response_msg(PyObject *self, PyObject *args);
PyObject *logout_destroy(PyObject *self, PyObject *args);
PyObject *logout_get_next_providerID(PyObject *self, PyObject *args);
PyObject *logout_init_request(PyObject *self, PyObject *args);
PyObject *logout_load_request_msg(PyObject *self, PyObject *args);
PyObject *logout_process_request_msg(PyObject *self, PyObject *args);
PyObject *logout_new(PyObject *self, PyObject *args);
PyObject *logout_process_request(PyObject *self, PyObject *args);
PyObject *logout_validate_request(PyObject *self, PyObject *args);
PyObject *logout_process_response_msg(PyObject *self, PyObject *args);
#endif /* __PYLASSO_PY_LOGOUT_H__ */

View File

@ -30,6 +30,7 @@
#include "xml/py_xml.h"
#include "xml/py_lib_authentication_statement.h"
#include "xml/py_lib_authn_request.h"
#include "xml/py_lib_authn_response.h"
#include "xml/py_lib_federation_termination_notification.h"
#include "xml/py_lib_logout_request.h"
#include "xml/py_lib_logout_response.h"
@ -98,6 +99,10 @@ static PyMethodDef lasso_methods[] = {
{"lib_authn_request_set_protocolProfile", lib_authn_request_set_protocolProfile, METH_VARARGS},
{"lib_authn_request_set_relayState", lib_authn_request_set_relayState, METH_VARARGS},
/* py_lib_authn_response.h */
{"lib_authn_response_new", lib_authn_response_new, METH_VARARGS},
{"lib_authn_response_add_assertion", lib_authn_response_add_assertion, METH_VARARGS},
/* py_lib_federation_termination_notification.h */
{"lib_federation_termination_notification_new", lib_federation_termination_notification_new, METH_VARARGS},
{"lib_federation_termination_notification_set_consent", lib_federation_termination_notification_set_consent, METH_VARARGS},
@ -253,19 +258,19 @@ static PyMethodDef lasso_methods[] = {
{"login_process_response_msg", login_process_response_msg, METH_VARARGS},
/* py_logout.h */
{"logout_getattr", logout_getattr, METH_VARARGS},
{"logout_getattr", logout_getattr, METH_VARARGS},
{"logout_new", logout_new, METH_VARARGS},
{"logout_build_request_msg", logout_build_request_msg, METH_VARARGS},
{"logout_build_response_msg", logout_build_response_msg, METH_VARARGS},
{"logout_destroy", logout_destroy, METH_VARARGS},
{"logout_get_next_providerID", logout_get_next_providerID, METH_VARARGS},
{"logout_init_request", logout_init_request, METH_VARARGS},
{"logout_load_request_msg", logout_load_request_msg, METH_VARARGS},
{"logout_process_request", logout_process_request, METH_VARARGS},
{"logout_process_request_msg", logout_process_request_msg, METH_VARARGS},
{"logout_process_response_msg", logout_process_response_msg, METH_VARARGS},
{"logout_validate_request", logout_validate_request, METH_VARARGS},
/* py_register_name_identifier.h */
{"register_name_identifier_getattr", register_name_identifier_getattr, METH_VARARGS},
{"register_name_identifier_getattr", register_name_identifier_getattr, METH_VARARGS},
{"register_name_identifier_new", register_name_identifier_new, METH_VARARGS},
{"register_name_identifier_build_request_msg", register_name_identifier_build_request_msg, METH_VARARGS},
{"register_name_identifier_build_response_msg", register_name_identifier_build_response_msg, METH_VARARGS},

View File

@ -218,15 +218,15 @@ START_TEST(test02_serviceProviderLogin)
idpContext = lasso_server_new_from_dump(identityProviderContextDump);
idpLogoutContext = lasso_logout_new(idpContext, lassoProviderTypeIdp);
fail_unless(idpLogoutContext != NULL, "lasso_logout_new failed");
rc = lasso_logout_load_request_msg(
rc = lasso_logout_process_request_msg(
idpLogoutContext,
LASSO_PROFILE(spLogoutContext)->msg_body,
lassoHttpMethodSoap);
fail_unless(rc == 0, "lasso_logout_load_request_msg failed");
fail_unless(rc == 0, "lasso_logout_process_request_msg failed");
rc = lasso_profile_set_identity_from_dump(LASSO_PROFILE(idpLogoutContext),
idpIdentityContextDump);
fail_unless(rc == 0, "lasso_profile_set_identity_from_dump failed");
rc = lasso_logout_process_request(idpLogoutContext);
rc = lasso_logout_validate_request(idpLogoutContext);
fail_unless(rc == 0, "lasso_logout_process_request failed");
fail_unless(lasso_logout_get_next_providerID(idpLogoutContext) == NULL,
"lasso_logout_get_next_providerID failed");