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:
parent
d5dc250c35
commit
638371bb15
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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},
|
||||
|
|
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue