summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-05-11 09:52:45 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-05-11 09:52:45 +0000
commit1ede604043a3b25759f3192d7c66eb8fa226c19b (patch)
tree11f38f3ac2e938857a3df513b8eebd9c0e668fbe
parente0ab9a70d5e266529518b22a6df04a2f07a2e20f (diff)
downloadlasso-1ede604043a3b25759f3192d7c66eb8fa226c19b.tar.gz
lasso-1ede604043a3b25759f3192d7c66eb8fa226c19b.tar.xz
lasso-1ede604043a3b25759f3192d7c66eb8fa226c19b.zip
federation termination notification c and binding
-rw-r--r--lasso/Attic/protocols/federation_termination_notification.c68
-rw-r--r--lasso/Attic/protocols/federation_termination_notification.h2
-rw-r--r--python/lasso.py66
-rw-r--r--python/lassomod.c2
-rw-r--r--python/protocols/py_federation_termination_notification.c41
-rw-r--r--python/protocols/py_federation_termination_notification.h2
6 files changed, 147 insertions, 34 deletions
diff --git a/lasso/Attic/protocols/federation_termination_notification.c b/lasso/Attic/protocols/federation_termination_notification.c
index fe17f43e..c17b38ab 100644
--- a/lasso/Attic/protocols/federation_termination_notification.c
+++ b/lasso/Attic/protocols/federation_termination_notification.c
@@ -103,3 +103,71 @@ lasso_federation_termination_notification_new(const xmlChar *providerID,
return (request);
}
+
+LassoNode *
+lasso_federation_termination_notification_new_from_query(const xmlChar *query)
+{
+ LassoNode *notification, *identifier;
+ xmlChar *str;
+ GData *gd;
+
+ notification = LASSO_NODE(g_object_new(LASSO_TYPE_FEDERATION_TERMINATION_NOTIFICATION, NULL));
+
+ gd = lasso_query_to_dict(query);
+
+ /* RequestID */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RequestID"), 0);
+ lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(notification), str);
+
+ /* MajorVersion */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0);
+ lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(notification), str);
+
+ /* MinorVersion */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0);
+ lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(notification), str);
+
+ /* IssueInstant */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstance"), 0);
+ lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(notification), str);
+
+ /* ProviderID */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0);
+ lasso_lib_federation_termination_notification_set_providerID(LASSO_LIB_FEDERATION_TERMINATION_NOTIFICATION(notification), str);
+
+ /* NameIdentifier */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameIdentifier"), 0);
+ identifier = lasso_saml_name_identifier_new(str);
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameQualifier"), 0);
+ lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(identifier), str);
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "Format"), 0);
+ lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(identifier), str);
+
+ lasso_lib_federation_termination_notification_set_nameIdentifier(LASSO_LIB_FEDERATION_TERMINATION_NOTIFICATION(notification), identifier);
+
+ return(notification);
+}
+
+LassoNode *
+lasso_federation_termination_notification_new_from_soap(const xmlChar *buffer)
+{
+ LassoNode *notification;
+ LassoNode *envelope, *lassoNode_notification;
+ xmlNodePtr xmlNode_notification;
+ LassoNodeClass *class;
+
+ notification = LASSO_NODE(g_object_new(LASSO_TYPE_FEDERATION_TERMINATION_NOTIFICATION, NULL));
+
+ envelope = lasso_node_new_from_dump(buffer);
+ lassoNode_notification = lasso_node_get_child(envelope, "FederationTerminationNotification");
+
+ class = LASSO_NODE_GET_CLASS(lassoNode_notification);
+ xmlNode_notification = xmlCopyNode(class->get_xmlNode(LASSO_NODE(lassoNode_notification)), 1);
+
+ class = LASSO_NODE_GET_CLASS(notification);
+ class->set_xmlNode(LASSO_NODE(notification), xmlNode_notification);
+ g_object_unref(envelope);
+
+ return(notification);
+}
+
diff --git a/lasso/Attic/protocols/federation_termination_notification.h b/lasso/Attic/protocols/federation_termination_notification.h
index 79239966..f602f72b 100644
--- a/lasso/Attic/protocols/federation_termination_notification.h
+++ b/lasso/Attic/protocols/federation_termination_notification.h
@@ -57,6 +57,8 @@ LASSO_EXPORT LassoNode* lasso_federation_termination_notification_new
const xmlChar *nameIdentifier,
const xmlChar *nameQualifier,
const xmlChar *format);
+LASSO_EXPORT LassoNode* lasso_federation_termination_notification_new_from_query (const xmlChar *query);
+LASSO_EXPORT LassoNode* lasso_federation_termination_notification_new_from_soap (const xmlChar *buffer);
#ifdef __cplusplus
}
diff --git a/python/lasso.py b/python/lasso.py
index 0e622806..e89463b0 100644
--- a/python/lasso.py
+++ b/python/lasso.py
@@ -324,21 +324,26 @@ class AuthnResponse(Node):
class FederationTerminationNotification(LibFederationTerminationNotification):
- def __init__(self, providerID,
- nameIdentifier, nameQualifier = None, format = None, _obj=None):
+ def __init__(self, obj):
"""
"""
- if _obj != None:
- self._o = _obj
- return
- self._o = lassomod.federation_termination_notification_new(providerID,
- nameIdentifier,
- nameQualifier,
- format)
- if self._o is None:
- raise Error('lasso_federation_termination_notification_new() failed')
- LibFederationTerminationNotification.__init__(self, _obj=_obj)
+ self._o = obj
+ LibFederationTerminationNotification.__init__(self, _obj=self._o)
+ def new(cls, providerID, nameIdentifier, nameQualifier, format):
+ obj = lassomod.federation_termination_notification_new(providerID, nameIdentifier, nameQualifier, format)
+ return FederationTerminationNotification(obj)
+ new = classmethod(new)
+
+ def new_from_soap(cls, envelope):
+ obj = lassomod.federation_termination_notification_new_from_soap(envelope)
+ return FederationTerminationNotification(obj)
+ new_from_soap = classmethod(new_from_soap)
+
+ def new_from_query(cls, query):
+ obj = lassomod.federation_termination_notification_new_from_query(query)
+ return FederationTerminationNotification(obj)
+ new_from_query = classmethod(new_from_query)
class LogoutRequest(LibLogoutRequest):
def __init__(self, obj):
@@ -429,28 +434,29 @@ class NameIdentifierMappingResponse(Node):
class RegisterNameIdentifierRequest(Node):
- def __init__(self,
- providerID,
- idpNameIdentifier, idpNameQualifier, idpFormat,
- spNameIdentifier, spNameQualifier, spFormat,
- oldNameIdentifier, oldNameQualifier, oldFormat,
- _obj=None):
+ def __init__(_obj):
"""
"""
- if _obj != None:
- self._o = _obj
- return
- _obj = lassomod.register_name_identifier_request_new(providerID,
- idpNameIdentifier, idpNameQualifier, idpFormat,
- spNameIdentifier, spNameQualifier, spFormat,
- oldNameIdentifier, oldNameQualifier, oldFormat)
- if _obj is None:
- raise Error('lasso_register_name_identifier_request_new() failed')
- Node.__init__(self, _obj=_obj)
+ self._o = obj
+ LibRegisterNameIdentifierRequest.__init__(self, _obj = self._o)
+
+ def new(cls, providerID, nameIdentifier, nameQualifier, format):
+ obj = lassomod.register_name_identifier_new(providerID, nameIdentifier, nameQualifier, format)
+ return RegisterNameIdentifierRequest(obj)
+ new = classmethod(new)
- def changeAttributeNamesIdentifiers(self):
- lassomod.register_name_identifier_request_change_attribute_names_identifiers(self);
+ def new_from_soap(cls, envelope):
+ obj = lassomod.register_name_identifier_new_from_soap(envelope)
+ return RegisterNameIdentifierRequest(obj)
+ new_from_soap = classmethod(new_from_soap)
+
+ def new_from_query(cls, query):
+ obj = lassomod.register_name_identifier_new_from_query(query)
+ return RegisterNameIdentifierRequest(obj)
+ new_from_query = classmethod(new_from_query)
+ def url_encode(self):
+ pass
class RegisterNameIdentifierResponse(Node):
def __init__(self,
diff --git a/python/lassomod.c b/python/lassomod.c
index d3b7d58c..30e048ca 100644
--- a/python/lassomod.c
+++ b/python/lassomod.c
@@ -134,6 +134,8 @@ static PyMethodDef lasso_methods[] = {
/* py_federation_termination_notification.h */
{"federation_termination_notification_new", federation_termination_notification_new, METH_VARARGS},
+ {"federation_termination_notification_new_from_soap", federation_termination_notification_new_from_soap, METH_VARARGS},
+ {"federation_termination_notification_new_from_query", federation_termination_notification_new_from_query, METH_VARARGS},
/* py_logout_request.h */
{"logout_request_new", logout_request_new, METH_VARARGS},
diff --git a/python/protocols/py_federation_termination_notification.c b/python/protocols/py_federation_termination_notification.c
index 08cb780e..e3b7945c 100644
--- a/python/protocols/py_federation_termination_notification.c
+++ b/python/protocols/py_federation_termination_notification.c
@@ -49,10 +49,9 @@ PyObject *federation_termination_notification_new(PyObject *self, PyObject *args
LassoNode *notification;
- if (CheckArgs(args, "SSss:federation_termination_notification_new")) {
- if(!PyArg_ParseTuple(args, (char *) "sszz:federation_termination_notification_new",
- &providerID, &nameIdentifier,
- &nameQualifier, &format))
+ if (CheckArgs(args, "SSSS:federation_termination_notification_new")) {
+ if(!PyArg_ParseTuple(args, (char *) "ssss:federation_termination_notification_new",
+ &providerID, &nameIdentifier,&nameQualifier, &format))
return NULL;
}
else return NULL;
@@ -64,3 +63,37 @@ PyObject *federation_termination_notification_new(PyObject *self, PyObject *args
return (LassoFederationTerminationNotification_wrap(LASSO_FEDERATION_TERMINATION_NOTIFICATION(notification)));
}
+
+PyObject *federation_termination_notification_new_from_soap(PyObject *self, PyObject *args) {
+ const xmlChar *soap_buffer;
+
+ LassoNode *notification;
+
+ if (CheckArgs(args, "S:federation_termination_notification_new_from_soap")) {
+ if(!PyArg_ParseTuple(args, (char *) "s:federation_termination_notification_new_from_soap",
+ &soap_buffer))
+ return NULL;
+ }
+ else return NULL;
+
+ notification = lasso_federation_termination_notification_new_from_soap(soap_buffer);
+
+ return (LassoFederationTerminationNotification_wrap(LASSO_FEDERATION_TERMINATION_NOTIFICATION(notification)));
+}
+
+PyObject *federation_termination_notification_new_from_query(PyObject *self, PyObject *args) {
+ const xmlChar *query;
+
+ LassoNode *notification;
+
+ if (CheckArgs(args, "S:federation_termination_notification_new_from_query")) {
+ if(!PyArg_ParseTuple(args, (char *) "s:federation_termination_notification_new_from_query",
+ &query))
+ return NULL;
+ }
+ else return NULL;
+
+ notification = lasso_federation_termination_notification_new_from_query(query);
+
+ return (LassoFederationTerminationNotification_wrap(LASSO_FEDERATION_TERMINATION_NOTIFICATION(notification)));
+}
diff --git a/python/protocols/py_federation_termination_notification.h b/python/protocols/py_federation_termination_notification.h
index a20a947e..2030f085 100644
--- a/python/protocols/py_federation_termination_notification.h
+++ b/python/protocols/py_federation_termination_notification.h
@@ -37,5 +37,7 @@ typedef struct {
PyObject *LassoFederationTerminationNotification_wrap(LassoFederationTerminationNotification *notification);
PyObject *federation_termination_notification_new(PyObject *self, PyObject *args);
+PyObject *federation_termination_notification_new_from_soap(PyObject *self, PyObject *args);
+PyObject *federation_termination_notification_new_from_query(PyObject *self, PyObject *args);
#endif /* __PYLASSO_PY_FEDERATION_TERMINATION_NOTIFICATION_H__ */