summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-07-27 15:57:45 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-07-27 15:57:45 +0000
commit49964c80c2e81ebf6cea915046b7690318cd2e0e (patch)
tree882cb86e423eb01f791febef24f77c849d6048d9 /python
parentd18a9dd23da7e66330a6da5dffaf6739d54e207c (diff)
downloadlasso-49964c80c2e81ebf6cea915046b7690318cd2e0e.tar.gz
lasso-49964c80c2e81ebf6cea915046b7690318cd2e0e.tar.xz
lasso-49964c80c2e81ebf6cea915046b7690318cd2e0e.zip
update of federation termination
Diffstat (limited to 'python')
-rw-r--r--python/environs/py_federation_termination.c49
-rw-r--r--python/environs/py_federation_termination.h6
-rw-r--r--python/examples/defederation.py51
-rw-r--r--python/lasso.py28
-rw-r--r--python/lassomod.c3
5 files changed, 79 insertions, 58 deletions
diff --git a/python/environs/py_federation_termination.c b/python/environs/py_federation_termination.c
index d5716fba..4187be8f 100644
--- a/python/environs/py_federation_termination.c
+++ b/python/environs/py_federation_termination.c
@@ -56,8 +56,9 @@ PyObject *federation_termination_getattr(PyObject *self, PyObject *args) {
federation_termination = LassoFederationTermination_get(federation_termination_obj);
if (!strcmp(attr, "__members__"))
- return Py_BuildValue("[ssss]", "user", "msg_url", "msg_body",
- "msg_relayState");
+ return Py_BuildValue("[sssss]", "user", "msg_url", "msg_body",
+ "msg_relayState",
+ "nameIdentifier");
if (!strcmp(attr, "user"))
return (LassoUser_wrap(LASSO_PROFILE_CONTEXT(federation_termination)->user));
@@ -67,26 +68,26 @@ PyObject *federation_termination_getattr(PyObject *self, PyObject *args) {
return (charPtrConst_wrap(LASSO_PROFILE_CONTEXT(federation_termination)->msg_body));
if (!strcmp(attr, "msg_relayState"))
return (charPtrConst_wrap(LASSO_PROFILE_CONTEXT(federation_termination)->msg_relayState));
+ if (!strcmp(attr, "nameIdentifier"))
+ return (charPtrConst_wrap(LASSO_PROFILE_CONTEXT(federation_termination)->nameIdentifier));
Py_INCREF(Py_None);
return (Py_None);
}
PyObject *federation_termination_new(PyObject *self, PyObject *args) {
- PyObject *server_obj, *user_obj;
LassoFederationTermination *federation_termination;
- gint provider_type;
+ PyObject *server_obj;
+ gint provider_type;
- if (CheckArgs(args, "OOI:federation_termination_new")) {
- if(!PyArg_ParseTuple(args, (char *) "OOi:federation_termination_new",
- &server_obj, &user_obj, &provider_type))
+ if (CheckArgs(args, "OI:federation_termination_new")) {
+ if(!PyArg_ParseTuple(args, (char *) "Oi:federation_termination_new",
+ &server_obj, &provider_type))
return NULL;
}
else return NULL;
federation_termination = lasso_federation_termination_new(LassoServer_get(server_obj),
- LassoUser_get(user_obj),
-
provider_type);
return (LassoFederationTermination_wrap(federation_termination));
@@ -142,21 +143,37 @@ PyObject *federation_termination_init_notification(PyObject *self, PyObject *arg
return(int_wrap(codeError));
}
-PyObject *federation_termination_process_notification_msg(PyObject *self, PyObject *args) {
- PyObject *federation_termination_obj;
+PyObject *federation_termination_load_notification_msg(PyObject *self, PyObject *args){
+ PyObject *notification_obj;
gchar *notification_msg;
gint notification_method;
gint codeError;
- if (CheckArgs(args, "OSI:federation_termination_process_notification_msg")) {
- if(!PyArg_ParseTuple(args, (char *) "Osi:federation_termination_process_notification_msg",
- &federation_termination_obj, &notification_msg, &notification_method))
+ if (CheckArgs(args, "OSI:federation_termination_load_notification_msg")) {
+ if(!PyArg_ParseTuple(args, (char *) "Osi:federation_termination_load_notification_msg",
+ &notification_obj, &notification_msg, &notification_method))
+ return NULL;
+ }
+ else return NULL;
+
+ codeError = lasso_federation_termination_load_notification_msg(LassoFederationTermination_get(notification_obj),
+ notification_msg, notification_method);
+
+ return(int_wrap(codeError));
+}
+
+PyObject *federation_termination_process_notification(PyObject *self, PyObject *args) {
+ PyObject *federation_termination_obj;
+ gint codeError;
+
+ if (CheckArgs(args, "O:federation_termination_process_notification")) {
+ if(!PyArg_ParseTuple(args, (char *) "O:federation_termination_process_notification",
+ &federation_termination_obj))
return NULL;
}
else return NULL;
- codeError = lasso_federation_termination_process_notification_msg(LassoFederationTermination_get(federation_termination_obj),
- notification_msg, notification_method);
+ codeError = lasso_federation_termination_process_notification(LassoFederationTermination_get(federation_termination_obj));
return(int_wrap(codeError));
}
diff --git a/python/environs/py_federation_termination.h b/python/environs/py_federation_termination.h
index a016a0b1..c59427d6 100644
--- a/python/environs/py_federation_termination.h
+++ b/python/environs/py_federation_termination.h
@@ -41,10 +41,12 @@ PyObject *LassoFederationTermination_wrap(LassoFederationTermination *federation
PyObject *federation_termination_getattr(PyObject *self, PyObject *args);
+PyObject *federation_termination_new(PyObject *self, PyObject *args);
+
PyObject *federation_termination_build_notification_msg(PyObject *self, PyObject *args);
PyObject *federation_termination_destroy(PyObject *self, PyObject *args);
PyObject *federation_termination_init_notification(PyObject *self, PyObject *args);
-PyObject *federation_termination_new(PyObject *self, PyObject *args);
-PyObject *federation_termination_process_notification_msg(PyObject *self, PyObject *args);
+PyObject *federation_termination_load_notification_msg(PyObject *self, PyObject *args);
+PyObject *federation_termination_process_notification(PyObject *self, PyObject *args);
#endif /* __PYLASSO_PY_FEDERATION_TERMINATION_H__ */
diff --git a/python/examples/defederation.py b/python/examples/defederation.py
index 22263738..b97a6c3e 100644
--- a/python/examples/defederation.py
+++ b/python/examples/defederation.py
@@ -4,45 +4,46 @@ import sys
sys.path.insert(0, '../')
import lasso
+
+spuser_dump = "<LassoUser><LassoIdentities><LassoIdentity RemoteProviderID=\"https://identity-provider:2003/liberty-alliance/metadata\"><LassoRemoteNameIdentifier><NameIdentifier NameQualifier=\"qualifier.com\" Format=\"federated\">1111111111111111111111111</NameIdentifier></LassoRemoteNameIdentifier></LassoIdentity></LassoIdentities></LassoUser>"
+
+idpuser_dump = "<LassoUser><LassoIdentities><LassoIdentity RemoteProviderID=\"https://service-provider:2003/liberty-alliance/metadata\"><LassoLocalNameIdentifier><NameIdentifier NameQualifier=\"qualifier.com\" Format=\"federated\">1111111111111111111111111</NameIdentifier></LassoLocalNameIdentifier></LassoIdentity></LassoIdentities></LassoUser>"
+
lasso.init()
-# servers :
+# SP :
spserver = lasso.Server.new("../../examples/sp.xml",
- "../../examples/rsapub.pem", "../../examples/rsakey.pem", "../../examples/rsacert.pem",
- lasso.signatureMethodRsaSha1)
+ "../../examples/rsapub.pem", "../../examples/rsakey.pem", "../../examples/rsacert.pem",
+ lasso.signatureMethodRsaSha1)
spserver.add_provider("../../examples/idp.xml", None, None)
-idpserver = lasso.Server.new("../../examples/idp.xml",
- "../../examples/rsapub.pem", "../../examples/rsakey.pem", "../../examples/rsacert.pem",
- lasso.signatureMethodRsaSha1)
-spserver.add_provider("../../examples/sp.xml", None, None)
-
-
-# users :
-spuser_dump = "<LassoUser><LassoIdentities><LassoIdentity RemoteProviderID=\"https://identity-provider:2003/liberty-alliance/metadata\"><LassoRemoteNameIdentifier><NameIdentifier NameQualifier=\"qualifier.com\" Format=\"federated\">1111111111111111111111111</NameIdentifier></LassoRemoteNameIdentifier><LassoLocalNameIdentifier><NameIdentifier NameQualifier=\"qualifier.com\" Format=\"federated\">222222222222222222222</NameIdentifier></LassoLocalNameIdentifier></LassoIdentity></LassoIdentities></LassoUser>"
spuser = lasso.User.new_from_dump(spuser_dump)
-idpuser_dump = "<LassoUser><LassoIdentities><LassoIdentity RemoteProviderID=\"https://service-provider:2003/liberty-alliance/metadata\"><LassoLocalNameIdentifier><NameIdentifier NameQualifier=\"qualifier.com\" Format=\"federated\">1111111111111111111111111</NameIdentifier></LassoLocalNameIdentifier><LassoRemoteNameIdentifier><NameIdentifier NameQualifier=\"qualifier.com\" Format=\"federated\">222222222222222222222</NameIdentifier></LassoRemoteNameIdentifier></LassoIdentity></LassoIdentities></LassoUser>"
-idpuser = lasso.User.new_from_dump(idpuser_dump)
-
-
-# sp federation termination :
-spdefederation = lasso.FederationTermination.new(spserver, spuser, lasso.providerTypeSp)
+spdefederation = lasso.FederationTermination.new(spserver, lasso.providerTypeSp)
+spdefederation.set_user_from_dump(spuser_dump)
spdefederation.init_notification()
spdefederation.build_notification_msg()
print 'url : ', spdefederation.msg_url
print 'body : ', spdefederation.msg_body
-print lasso.get_request_type_from_soap_msg(spdefederation.msg_body)
+notification_msg = spdefederation.msg_body
+
+
+# IDP :
+idpserver = lasso.Server.new("../../examples/idp.xml",
+ "../../examples/rsapub.pem", "../../examples/rsakey.pem", "../../examples/rsacert.pem",
+ lasso.signatureMethodRsaSha1)
+idpserver.add_provider("../../examples/sp.xml", None, None)
+
+idpuser = lasso.User.new_from_dump(idpuser_dump)
+idpdefederation = lasso.FederationTermination.new(idpserver, lasso.providerTypeIdp)
+idpdefederation.load_notification_msg(notification_msg, lasso.httpMethodSoap)
+print 'NameIdentifier :', idpdefederation.nameIdentifier
-# idp federation termination :
-print "---------------------------------------------------------"
-print " At identity provider "
-idpdefederation = lasso.FederationTermination.new(idpserver, idpuser, lasso.providerTypeIdp)
-idpdefederation.process_notification_msg(spdefederation.msg_body, lasso.httpMethodSoap)
+idpdefederation.set_user_from_dump(idpuser_dump);
+idpdefederation.process_notification()
-print 'Only return an HTTP OK 200 to the notifier'
-print 'End of federation termination'
+print 'End of federation termination notification'
lasso.shutdown()
diff --git a/python/lasso.py b/python/lasso.py
index 41f68faa..76ce1a80 100644
--- a/python/lasso.py
+++ b/python/lasso.py
@@ -1064,20 +1064,20 @@ class Logout(ProfileContext):
def process_response_msg(self, response_msg, response_method):
return lassomod.logout_process_response_msg(self, response_msg, response_method);
-class FederationTermination:
+class FederationTermination(ProfileContext):
"""\brief Short desc
Long desc
"""
-
- def __isprivate(self, name):
- return name == '_o'
-
def __init__(self, _obj):
"""
The constructor
"""
self._o = _obj
+ ProfileContext.__init__(self, _obj=_obj)
+
+ def __isprivate(self, name):
+ return name == '_o'
def __getattr__(self, name):
if self.__isprivate(name):
@@ -1090,25 +1090,25 @@ class FederationTermination:
ret = User(_obj=ret)
return ret
- def new(cls, server, user, provider_type):
- obj = lassomod.federation_termination_new(server, user, provider_type)
+ def new(cls, server, provider_type):
+ obj = lassomod.federation_termination_new(server, provider_type)
return FederationTermination(obj)
new = classmethod(new)
- def add_assertion(self, remote_providerID, assertion):
- lassmod.user_add_assertion(remote_providerID, assertion);
-
def build_notification_msg(self):
return lassomod.federation_termination_build_notification_msg(self)
def destroy(self):
- pass
+ lassomod.federation_termination_destroy(self)
def init_notification(self, remote_providerID = None):
- return lassomod.federation_termination_init_notification(self, remote_providerID);
+ return lassomod.federation_termination_init_notification(self, remote_providerID)
+
+ def load_notification_msg(self, notification_msg, notification_method):
+ return lassomod.federation_termination_load_notification_msg(self, notification_msg, notification_method)
- def process_notification_msg(self, notification_msg, notification_method):
- return lassomod.federation_termination_process_notification_msg(self, notification_msg, notification_method);
+ def process_notification(self):
+ return lassomod.federation_termination_process_notification(self)
class RegisterNameIdentifier:
diff --git a/python/lassomod.c b/python/lassomod.c
index e90f96d5..e12a8a04 100644
--- a/python/lassomod.c
+++ b/python/lassomod.c
@@ -213,7 +213,8 @@ static PyMethodDef lasso_methods[] = {
{"federation_termination_build_notification_msg", federation_termination_build_notification_msg, METH_VARARGS},
{"federation_termination_destroy", federation_termination_destroy, METH_VARARGS},
{"federation_termination_init_notification", federation_termination_init_notification, METH_VARARGS},
- {"federation_termination_process_notification_msg", federation_termination_process_notification_msg, METH_VARARGS},
+ {"federation_termination_load_notification_msg", federation_termination_load_notification_msg, METH_VARARGS},
+ {"federation_termination_process_notification", federation_termination_process_notification, METH_VARARGS},
/* py_lecp.h */
{"lecp_new", lecp_new, METH_VARARGS},