summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-04-19 16:17:56 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-04-19 16:17:56 +0000
commit8dff393969fa08a7db967b9c35ffbf138a683999 (patch)
treeba407b609bc2ff6551d0ac4ebf04b2e1d180201f /python
parent9aaeda1a36d580eb8f973867be5408d322477391 (diff)
downloadlasso-8dff393969fa08a7db967b9c35ffbf138a683999.tar.gz
lasso-8dff393969fa08a7db967b9c35ffbf138a683999.tar.xz
lasso-8dff393969fa08a7db967b9c35ffbf138a683999.zip
update for classes LogoutRequest and LogoutResponse
Diffstat (limited to 'python')
-rw-r--r--python/lasso.py116
-rw-r--r--python/lassomod.c4
-rw-r--r--python/protocols/py_logout.c86
-rw-r--r--python/protocols/py_logout.h13
4 files changed, 187 insertions, 32 deletions
diff --git a/python/lasso.py b/python/lasso.py
index a33589cd..8ae5818b 100644
--- a/python/lasso.py
+++ b/python/lasso.py
@@ -119,8 +119,10 @@ class AuthnResponse:
certificate_file,
is_authenticated)
if self._o is None: raise Error('lasso_authn_response_create() failed')
+
def __isprivate(self, name):
return name == '_o'
+
def __getattr__(self, name):
if self.__isprivate(name):
return self.__dict__[name]
@@ -132,43 +134,13 @@ class AuthnResponse:
if name == "node":
ret = Node(_obj=ret)
return ret
+
def init(self, providerID, authentication_result):
return lassomod.authn_response_init(self, providerID,
authentication_result)
def add_assertion(self, assertion):
return lassomod.authn_response_add_assertion(self, assertion)
-class LogoutRequest:
- def __init__(self, providerID,
- nameIdentifier, nameQualifier, format,
- sessionIndex, relayState, consent, _obj=None):
- """
- """
- if _obj != None:
- self._o = _obj
- return
- self._o = lassomod.logout_request_create(providerID,
- nameIdentifier,
- nameQualifier,
- format,
- sessionIndex,
- relayState,
- consent)
- if self._o is None: raise Error('lasso_logout_request_create() failed')
- def __isprivate(self, name):
- return name == '_o'
- def __getattr__(self, name):
- if self.__isprivate(name):
- return self.__dict__[name]
- if name[:2] == "__" and name[-2:] == "__" and name != "__members__":
- raise AttributeError, name
- ret = lassomod.logout_request_getattr(self, name)
- if ret is None:
- raise AttributeError, name
- if name == "node":
- ret = Node(_obj=ret)
- return ret
-
class Request:
def __init__(self, assertionArtifact, _obj=None):
"""
@@ -178,8 +150,10 @@ class Request:
return
self._o = lassomod.request_create(assertionArtifact)
if self._o is None: raise Error('lasso_request_create() failed')
+
def __isprivate(self, name):
return name == '_o'
+
def __getattr__(self, name):
if self.__isprivate(name):
return self.__dict__[name]
@@ -193,7 +167,8 @@ class Request:
return ret
class Response:
- def __init__(self, serialized_request,
+ def __init__(self,
+ serialized_request,
verify_signature,
public_key_file, private_key_file, certificate_file,
_obj=None):
@@ -230,6 +205,78 @@ class Response:
def add_assertion(self, assertion):
return lassomod.response_add_assertion(self, assertion)
+class LogoutRequest:
+ def __init__(self, providerID,
+ nameIdentifier, nameQualifier, format,
+ sessionIndex, relayState, consent, _obj=None):
+ """
+ """
+ if _obj != None:
+ self._o = _obj
+ return
+ self._o = lassomod.logout_request_create(providerID,
+ nameIdentifier,
+ nameQualifier,
+ format,
+ sessionIndex,
+ relayState,
+ consent)
+ if self._o is None: raise Error('lasso_logout_request_create() failed')
+
+ def __isprivate(self, name):
+ return name == '_o'
+
+ def __getattr__(self, name):
+ if self.__isprivate(name):
+ return self.__dict__[name]
+ if name[:2] == "__" and name[-2:] == "__" and name != "__members__":
+ raise AttributeError, name
+ ret = lassomod.logout_request_getattr(self, name)
+ if ret is None:
+ raise AttributeError, name
+ if name == "node":
+ ret = Node(_obj=ret)
+ return ret
+
+class LogoutResponse:
+ def __init__(self,
+ query,
+ verifySignature,
+ public_key,
+ private_key,
+ certificate,
+ _obj=None):
+ """
+ """
+ if _obj != None:
+ self._o = _obj
+ return
+ self._o = lassomod.logout_response_create(query,
+ verifySignature,
+ public_key,
+ private_key,
+ certificate)
+ if self._o is None: raise Error('lasso_logout_response_create() failed')
+
+ def __isprivate(self, name):
+ return name == '_o'
+
+ def __getattr__(self, name):
+ if self.__isprivate(name):
+ return self.__dict__[name]
+ if name[:2] == "__" and name[-2:] == "__" and name != "__members__":
+ raise AttributeError, name
+ ret = lassomod.logout_response_getattr(self, name)
+ if ret is None:
+ raise AttributeError, name
+ if name == "node":
+ ret = Node(_obj=ret)
+ return ret
+
+ def init(self, providerID, statusCodeValue, relayState):
+ return lassomod.logout_response_init(self, providerID, statusCodeValue, relayState)
+
+
class Node:
def __init__(self, _obj=None):
"""
@@ -241,13 +288,18 @@ class Node:
if self._o is None: raise Error('lasso_node_new() failed')
def dump(self, encoding, format):
return lassomod.node_dump(self, encoding, format)
+
def destroy(self):
lassomod.node_unref(self)
+
def get_attr_value(self, name):
return lassomod.node_get_attr_value(self, name)
+
def get_child(self, name):
return Node(_obj=lassomod.node_get_child(self, name))
+
def url_encode(self, sign_method, private_key_file):
return lassomod.node_url_encode(self, sign_method, private_key_file)
+
def verify_signature(self, certificate_file):
return lassomod.node_verify_signature(self, certificate_file)
diff --git a/python/lassomod.c b/python/lassomod.c
index 96fb2a8c..dee23736 100644
--- a/python/lassomod.c
+++ b/python/lassomod.c
@@ -51,6 +51,10 @@ static PyMethodDef lasso_methods[] = {
{"logout_request_getattr", logout_request_getattr, METH_VARARGS},
{"logout_request_create", logout_request_create, METH_VARARGS},
+ {"logout_response_getattr", logout_response_getattr, METH_VARARGS},
+ {"logout_response_create", logout_response_create, METH_VARARGS},
+ {"logout_response_init", logout_response_init, METH_VARARGS},
+
/* py_single_sign_on_and_federation.h */
{"authn_request_getattr", authn_request_getattr, METH_VARARGS},
{"authn_request_create", authn_request_create, METH_VARARGS},
diff --git a/python/protocols/py_logout.c b/python/protocols/py_logout.c
index 2d6318b6..4886a6d5 100644
--- a/python/protocols/py_logout.c
+++ b/python/protocols/py_logout.c
@@ -96,3 +96,89 @@ PyObject *logout_request_create(PyObject *self, PyObject *args) {
return (lassoLogoutRequest_wrap(request));
}
+
+/******************************************************************************/
+/* lassoLogoutResponse */
+/******************************************************************************/
+
+PyObject *lassoLogoutResponse_wrap(lassoLogoutResponse *response) {
+ PyObject *ret;
+
+ if (response == NULL) {
+ Py_INCREF(Py_None);
+ return (Py_None);
+ }
+ ret = PyCObject_FromVoidPtrAndDesc((void *) response,
+ (char *) "lassoLogoutResponse *", NULL);
+ return (ret);
+}
+
+PyObject *logout_response_getattr(PyObject *self, PyObject *args) {
+ PyObject *response_obj;
+ lassoLogoutResponse *response;
+ const char *attr;
+
+ if (CheckArgs(args, "OS:logout_response_get_attr")) {
+ if (!PyArg_ParseTuple(args, "Os:logout_response_get_attr", &response_obj, &attr))
+ return NULL;
+ }
+ else return NULL;
+
+ response = lassoLogoutResponse_get(response_obj);
+
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[s]", "node");
+ if (!strcmp(attr, "node"))
+ return (LassoNode_wrap(response->node));
+
+ Py_INCREF(Py_None);
+ return (Py_None);
+}
+
+PyObject *logout_response_create(PyObject *self, PyObject *args) {
+ char *query;
+ int verifySignature;
+ char *public_key;
+ char *private_key;
+ char *certificate;
+
+ lassoLogoutResponse *response;
+
+ if(!PyArg_ParseTuple(args, (char *) "sisss:logout_response_create",
+ &query,
+ &verifySignature,
+ &public_key,
+ &private_key,
+ &certificate))
+ return NULL;
+
+ response = lasso_logout_response_create(query,
+ verifySignature,
+ public_key,
+ private_key,
+ certificate);
+
+ return (lassoLogoutResponse_wrap(response));
+}
+
+PyObject *logout_response_init(PyObject *self, PyObject *args) {
+ PyObject *response_obj;
+ char *providerID;
+ char *statusCodeValue;
+ char *relayState;
+ int ret;
+
+ if(!PyArg_ParseTuple(args, (char *) "Osss:response_init",
+ &response_obj,
+ &providerID,
+ &statusCodeValue,
+ &relayState))
+ return NULL;
+
+ ret = lasso_logout_response_init(lassoLogoutResponse_get(response_obj),
+ providerID,
+ statusCodeValue,
+ relayState);
+
+ return (int_wrap(ret));
+}
diff --git a/python/protocols/py_logout.h b/python/protocols/py_logout.h
index e258f460..90f432f9 100644
--- a/python/protocols/py_logout.h
+++ b/python/protocols/py_logout.h
@@ -38,4 +38,17 @@ PyObject *lassoLogoutRequest_wrap(lassoLogoutRequest *request);
PyObject *logout_request_getattr(PyObject *self, PyObject *args);
PyObject *logout_request_create(PyObject *self, PyObject *args);
+typedef struct {
+ PyObject_HEAD
+ lassoLogoutResponse *obj;
+} lassoLogoutResponse_object;
+
+#define lassoLogoutResponse_get(v) (((v) == Py_None) ? NULL : (((lassoLogoutResponse_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj))
+PyObject *lassoLogoutResponse_wrap(lassoLogoutResponse *response);
+
+PyObject *logout_response_getattr(PyObject *self, PyObject *args);
+PyObject *logout_response_create(PyObject *self, PyObject *args);
+PyObject *logout_response_init(PyObject *self, PyObject *args);
+
+
#endif /* __PYLASSO_PY_LOGOUT_H__ */