diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-04-16 10:50:21 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-04-16 10:50:21 +0000 |
| commit | f096bdc7a0d5b8bbe1b4cfaebbdbfc1ad86540a7 (patch) | |
| tree | 3aa357f864b829f5ae592d14d93e2791e1629586 /python | |
| parent | a73b11a5d3c79cb15b06f17d29a9063e120b2ed2 (diff) | |
| download | lasso-f096bdc7a0d5b8bbe1b4cfaebbdbfc1ad86540a7.tar.gz lasso-f096bdc7a0d5b8bbe1b4cfaebbdbfc1ad86540a7.tar.xz lasso-f096bdc7a0d5b8bbe1b4cfaebbdbfc1ad86540a7.zip | |
request and response definition
Diffstat (limited to 'python')
| -rw-r--r-- | python/protocols/py_single_sign_on_and_federation.c | 129 | ||||
| -rw-r--r-- | python/protocols/py_single_sign_on_and_federation.h | 23 |
2 files changed, 152 insertions, 0 deletions
diff --git a/python/protocols/py_single_sign_on_and_federation.c b/python/protocols/py_single_sign_on_and_federation.c index a18b2ea7..74637829 100644 --- a/python/protocols/py_single_sign_on_and_federation.c +++ b/python/protocols/py_single_sign_on_and_federation.c @@ -288,3 +288,132 @@ PyObject *authentication_statement_build(PyObject *self, PyObject *args) { return (LassoNode_wrap(statement)); } + +/******************************************************************************/ +/* lassoRequest */ +/******************************************************************************/ + +PyObject *lassoRequest_wrap(lassoRequest *request) { + PyObject *ret; + + if (request == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = PyCObject_FromVoidPtrAndDesc((void *) request, + (char *) "lassoRequest *", NULL); + return (ret); +} + +PyObject *request_getattr(PyObject *self, PyObject *args) { + PyObject *lareq_obj; + lassoRequest *lareq; + const char *attr; + + if (CheckArgs(args, "OS:request_get_attr")) { + if (!PyArg_ParseTuple(args, "Os:request_get_attr", &lareq_obj, &attr)) + return NULL; + } + else return NULL; + + lareq = lassoRequest_get(lareq_obj); + + if (!strcmp(attr, "__members__")) + return Py_BuildValue("[s]", "node"); + if (!strcmp(attr, "node")) + return (LassoNode_wrap(lareq->node)); + + Py_INCREF(Py_None); + return (Py_None); +} + +PyObject *request_create(PyObject *self, PyObject *args) { + const xmlChar *assertionArtifact; + + lassoRequest *request; + + if(!PyArg_ParseTuple(args, (char *) "s:request_create", + &assertionArtifact)) + return NULL; + + request = lasso_request_create(assertionArtifact); + + return (lassoRequest_wrap(request)); +} + +/******************************************************************************/ +/* lassoResponse */ +/******************************************************************************/ + +PyObject *lassoResponse_wrap(lassoResponse *response) { + PyObject *ret; + + if (response == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = PyCObject_FromVoidPtrAndDesc((void *) response, + (char *) "lassoResponse *", NULL); + return (ret); +} + +PyObject *response_getattr(PyObject *self, PyObject *args) { + PyObject *lares_obj; + lassoResponse *lares; + const char *attr; + + if (CheckArgs(args, "OS:response_get_attr")) { + if (!PyArg_ParseTuple(args, "Os:response_get_attr", &lares_obj, &attr)) + return NULL; + } + else return NULL; + + lares = lassoResponse_get(lares_obj); + + if (!strcmp(attr, "__members__")) + return Py_BuildValue("[s]", "node"); + if (!strcmp(attr, "node")) + return (LassoNode_wrap(lares->node)); + if (!strcmp(attr, "request_node")) + return (LassoNode_wrap(lares->request_node)); + + Py_INCREF(Py_None); + return (Py_None); +} + +PyObject *response_create(PyObject *self, PyObject *args) { + const char *serialized_request; + int verifySignature; + const char *public_key; + const char *private_key; + const char *certificate; + + lassoResponse *response; + + if(!PyArg_ParseTuple(args, (char *) "sisss:response_create", + &serialized_request, &verifySignature, &public_key, &private_key, &certificate)) + return NULL; + + response = lasso_response_create(serialized_request, + verifySignature, + public_key, + private_key, + certificate); + + return (lassoResponse_wrap(response)); +} + +PyObject *response_init(PyObject *self, PyObject *args) { + PyObject *response_obj; + gboolean authentication_result; + int ret; + + if(!PyArg_ParseTuple(args, (char *) "Oi:response_init", + &response_obj, &authentication_result)) + return NULL; + + ret = lasso_response_init(lassoResponse_get(response_obj), + authentication_result); + + return (int_wrap(ret)); +} diff --git a/python/protocols/py_single_sign_on_and_federation.h b/python/protocols/py_single_sign_on_and_federation.h index e2a64f1b..94c75b6f 100644 --- a/python/protocols/py_single_sign_on_and_federation.h +++ b/python/protocols/py_single_sign_on_and_federation.h @@ -56,4 +56,27 @@ PyObject *assertion_add_authenticationStatement(PyObject *self, PyObject *args); PyObject *authentication_statement_build(PyObject *self, PyObject *args); +typedef struct { + PyObject_HEAD + lassoRequest *obj; +} lassoRequest_object; + +#define lassoRequest_get(v) (((v) == Py_None) ? NULL : (((lassoRequest_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj)) +PyObject *lassoRequest_wrap(lassoRequest *request); + +typedef struct { + PyObject_HEAD + lassoResponse *obj; +} lassoResponse_object; + +#define lassoResponse_get(v) (((v) == Py_None) ? NULL : (((lassoResponse_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj)) +PyObject *lassoResponse_wrap(lassoResponse *response); + +PyObject *request_getattr(PyObject *self, PyObject *args); +PyObject *request_create(PyObject *self, PyObject *args); + +PyObject *response_getattr(PyObject *self, PyObject *args); +PyObject *response_create(PyObject *self, PyObject *args); +PyObject *response_init(PyObject *self, PyObject *args); + #endif /* __PYLASSO_PY_SINGLE_SIGN_ON_AND_FEDERATION_H__ */ |
