diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-04-19 16:17:56 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-04-19 16:17:56 +0000 |
| commit | 8dff393969fa08a7db967b9c35ffbf138a683999 (patch) | |
| tree | ba407b609bc2ff6551d0ac4ebf04b2e1d180201f /python | |
| parent | 9aaeda1a36d580eb8f973867be5408d322477391 (diff) | |
| download | lasso-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.py | 116 | ||||
| -rw-r--r-- | python/lassomod.c | 4 | ||||
| -rw-r--r-- | python/protocols/py_logout.c | 86 | ||||
| -rw-r--r-- | python/protocols/py_logout.h | 13 |
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__ */ |
