diff options
-rw-r--r-- | lasso/id-ff/login.c | 16 | ||||
-rw-r--r-- | lasso/id-ff/login.h | 10 | ||||
-rw-r--r-- | lasso/id-ff/profile_context.c | 4 | ||||
-rw-r--r-- | python/environs/py_login.c | 16 | ||||
-rw-r--r-- | python/environs/py_login.h | 4 | ||||
-rw-r--r-- | python/environs/py_server.c | 32 | ||||
-rw-r--r-- | python/environs/py_server.h | 2 | ||||
-rw-r--r-- | python/examples/login.py | 5 | ||||
-rw-r--r-- | python/lasso.py | 16 | ||||
-rw-r--r-- | python/lassomod.c | 10 |
10 files changed, 81 insertions, 34 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index af83d2ca..05bcc6a4 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -318,18 +318,18 @@ lasso_login_dump(LassoLogin *login) if (login->protocolProfile > 0) { str = g_new0(gchar, 6); sprintf(str, "%d", login->protocolProfile); - LASSO_NODE_GET_CLASS(node)->new_child(node, "protocolProfile", str, FALSE); + LASSO_NODE_GET_CLASS(node)->new_child(node, "ProtocolProfile", str, FALSE); g_free(str); } if (login->assertionArtifact != NULL) { - LASSO_NODE_GET_CLASS(node)->new_child(node, "assertionArtifact", login->assertionArtifact, FALSE); + LASSO_NODE_GET_CLASS(node)->new_child(node, "AssertionArtifact", login->assertionArtifact, FALSE); } if (login->response_dump != NULL) { - LASSO_NODE_GET_CLASS(node)->new_child(node, "response_dump", login->response_dump, FALSE); + LASSO_NODE_GET_CLASS(node)->new_child(node, "ResponseDump", login->response_dump, FALSE); } if (login->msg_relayState != NULL) { - LASSO_NODE_GET_CLASS(node)->new_child(node, "msg_relayState", login->msg_relayState, FALSE); + LASSO_NODE_GET_CLASS(node)->new_child(node, "MsgRelayState", login->msg_relayState, FALSE); } dump = lasso_node_export(node); @@ -487,8 +487,8 @@ lasso_login_init_request(LassoLogin *login, } gint -lasso_login_handle_authn_response_msg(LassoLogin *login, - gchar *authn_response_msg) +lasso_login_process_authn_response_msg(LassoLogin *login, + gchar *authn_response_msg) { LassoNode *assertion, *status, *statusCode; LassoProvider *idp; @@ -534,8 +534,8 @@ lasso_login_handle_authn_response_msg(LassoLogin *login, } gint -lasso_login_handle_request_msg(LassoLogin *login, - gchar *request_msg) +lasso_login_process_request_msg(LassoLogin *login, + gchar *request_msg) { LassoNode *node; diff --git a/lasso/id-ff/login.h b/lasso/id-ff/login.h index 3ea7de34..e3f3df07 100644 --- a/lasso/id-ff/login.h +++ b/lasso/id-ff/login.h @@ -57,9 +57,9 @@ struct _LassoLogin { LassoProfileContext parent; /*< public >*/ lassoLoginProtocolProfiles protocolProfile; - gchar *assertionArtifact; gchar *nameIdentifier; + gchar *assertionArtifact; gchar *response_dump; gchar *msg_relayState; @@ -108,11 +108,11 @@ LASSO_EXPORT gint lasso_login_init_request (Lasso lassoHttpMethods response_method, const gchar *remote_providerID); -LASSO_EXPORT gint lasso_login_handle_authn_response_msg (LassoLogin *login, - gchar *authn_response_msg); +LASSO_EXPORT gint lasso_login_process_authn_response_msg (LassoLogin *login, + gchar *authn_response_msg); -LASSO_EXPORT gint lasso_login_handle_request_msg (LassoLogin *login, - gchar *request_msg); +LASSO_EXPORT gint lasso_login_process_request_msg (LassoLogin *login, + gchar *request_msg); LASSO_EXPORT gboolean lasso_login_must_authenticate (LassoLogin *login); diff --git a/lasso/id-ff/profile_context.c b/lasso/id-ff/profile_context.c index e3062f65..937cd3fe 100644 --- a/lasso/id-ff/profile_context.c +++ b/lasso/id-ff/profile_context.c @@ -73,10 +73,10 @@ lasso_profile_context_dump(LassoProfileContext *ctx, /* cdata = xmlNewCDataBlock(doc, ctx->msg_url, strlen(ctx->msg_url)); */ /* xmlAddChild(data, cdata); */ /* xmlAddChild(LASSO_NODE_GET_CLASS(node)->get_xmlNode(node), data); */ - LASSO_NODE_GET_CLASS(node)->new_child(node, "msg_url", lasso_str_escape(ctx->msg_url), FALSE); + LASSO_NODE_GET_CLASS(node)->new_child(node, "MsgUrl", lasso_str_escape(ctx->msg_url), FALSE); } if (ctx->msg_body != NULL) { - LASSO_NODE_GET_CLASS(node)->new_child(node, "msg_body", lasso_str_escape(ctx->msg_body), FALSE); + LASSO_NODE_GET_CLASS(node)->new_child(node, "MsgBody", lasso_str_escape(ctx->msg_body), FALSE); } dump = lasso_node_export(node); diff --git a/python/environs/py_login.c b/python/environs/py_login.c index b135f5b2..5b59d86e 100644 --- a/python/environs/py_login.c +++ b/python/environs/py_login.c @@ -220,37 +220,37 @@ PyObject *login_dump(PyObject *self, PyObject *args) { return (charPtrConst_wrap(ret)); } -PyObject *login_handle_authn_response_msg(PyObject *self, PyObject *args) { +PyObject *login_process_authn_response_msg(PyObject *self, PyObject *args) { PyObject *login_obj; gchar *authn_response_msg; gboolean ret; - if (CheckArgs(args, "OS:login_handle_authn_response_msg")) { - if(!PyArg_ParseTuple(args, (char *) "Os:login_handle_authn_response_msg", + if (CheckArgs(args, "OS:login_process_authn_response_msg")) { + if(!PyArg_ParseTuple(args, (char *) "Os:login_process_authn_response_msg", &login_obj, &authn_response_msg)) return NULL; } else return NULL; - ret = lasso_login_handle_authn_response_msg(LassoLogin_get(login_obj), + ret = lasso_login_process_authn_response_msg(LassoLogin_get(login_obj), authn_response_msg); return (int_wrap(ret)); } -PyObject *login_handle_request_msg(PyObject *self, PyObject *args) { +PyObject *login_process_request_msg(PyObject *self, PyObject *args) { PyObject *login_obj; gchar *request_msg; gboolean ret; - if (CheckArgs(args, "OS:login_handle_request_msg")) { - if(!PyArg_ParseTuple(args, (char *) "Os:login_handle_request_msg", + if (CheckArgs(args, "OS:login_process_request_msg")) { + if(!PyArg_ParseTuple(args, (char *) "Os:login_process_request_msg", &login_obj, &request_msg)) return NULL; } else return NULL; - ret = lasso_login_handle_request_msg(LassoLogin_get(login_obj), + ret = lasso_login_process_request_msg(LassoLogin_get(login_obj), request_msg); return (int_wrap(ret)); diff --git a/python/environs/py_login.h b/python/environs/py_login.h index 3c50fe9f..f0a22ee9 100644 --- a/python/environs/py_login.h +++ b/python/environs/py_login.h @@ -47,8 +47,8 @@ PyObject *login_build_authn_request_msg(PyObject *self, PyObject *args); PyObject *login_build_authn_response_msg(PyObject *self, PyObject *args); PyObject *login_build_request_msg(PyObject *self, PyObject *args); PyObject *login_dump(PyObject *self, PyObject *args); -PyObject *login_handle_authn_response_msg(PyObject *self, PyObject *args); -PyObject *login_handle_request_msg(PyObject *self, PyObject *args); +PyObject *login_process_authn_response_msg(PyObject *self, PyObject *args); +PyObject *login_process_request_msg(PyObject *self, PyObject *args); PyObject *login_init_authn_request(PyObject *self, PyObject *args); PyObject *login_init_from_authn_request_msg(PyObject *self, PyObject *args); PyObject *login_init_request(PyObject *self, PyObject *args); diff --git a/python/environs/py_server.c b/python/environs/py_server.c index 50f2ece4..fbcce1c6 100644 --- a/python/environs/py_server.c +++ b/python/environs/py_server.c @@ -63,6 +63,22 @@ PyObject *server_new(PyObject *self, PyObject *args) { return (LassoServer_wrap(LASSO_SERVER(server))); } +PyObject *server_new_from_dump(PyObject *self, PyObject *args) { + LassoServer *server; + gchar *dump; + + if (CheckArgs(args, "S:server_new_from_dump")) { + if(!PyArg_ParseTuple(args, (char *) "s:server_new_from_dump", + &dump)) + return NULL; + } + else return NULL; + + server = lasso_server_new_from_dump(dump); + + return (LassoServer_wrap(LASSO_SERVER(server))); +} + PyObject *server_add_provider(PyObject *self, PyObject *args) { PyObject *server_obj; gchar *metadata; @@ -82,3 +98,19 @@ PyObject *server_add_provider(PyObject *self, PyObject *args) { Py_INCREF(Py_None); return (Py_None); } + +PyObject *server_dump(PyObject *self, PyObject *args) { + PyObject *server_obj; + gchar *ret; + + if (CheckArgs(args, "O:server_dump")) { + if(!PyArg_ParseTuple(args, (char *) "O:server_dump", + &server_obj)) + return NULL; + } + else return NULL; + + ret = lasso_server_dump(LassoServer_get(server_obj)); + + return (charPtrConst_wrap(ret)); +} diff --git a/python/environs/py_server.h b/python/environs/py_server.h index 9c05001f..02d91954 100644 --- a/python/environs/py_server.h +++ b/python/environs/py_server.h @@ -37,6 +37,8 @@ typedef struct { PyObject *LassoServer_wrap(LassoServer *server); PyObject *server_new(PyObject *self, PyObject *args); +PyObject *server_new_from_dump(PyObject *self, PyObject *args); PyObject *server_add_provider(PyObject *self, PyObject *args); +PyObject *server_dump(PyObject *self, PyObject *args); #endif /* __PYLASSO_PY_SERVER_H__ */ diff --git a/python/examples/login.py b/python/examples/login.py index 337b0391..9e5fea24 100644 --- a/python/examples/login.py +++ b/python/examples/login.py @@ -17,8 +17,11 @@ server = lasso.Server.new("../../examples/sp.xml", lasso.signatureMethodRsaSha1) server.add_provider("../../examples/idp.xml", None, None) +server_dump = server.dump() +print server_dump # create AuthnRequest +server = lasso.Server.new_from_dump(server_dump) splogin = lasso.Login.new(server, None) ret = splogin.init_authn_request("https://identity-provider:2003/liberty-alliance/metadata") splogin.request.set_isPassive(0) @@ -96,5 +99,5 @@ server.add_provider("../../examples/sp.xml", # create Response idplogin = lasso.Login.new(server, None) -ret = idplogin.handle_request_msg(splogin.msg_body) +ret = idplogin.process_request_msg(splogin.msg_body) print "samlp:AssertionArtifact = %s" % idplogin.assertionArtifact diff --git a/python/lasso.py b/python/lasso.py index 51d85650..ec8a10de 100644 --- a/python/lasso.py +++ b/python/lasso.py @@ -820,10 +820,18 @@ class Server: return Server(obj) new = classmethod(new) + def new_from_dump(cls, dump): + obj = lassomod.server_new_from_dump(dump) + return Server(obj) + new_from_dump = classmethod(new_from_dump) + def add_provider(self, metadata, public_key=None, certificate=None): lassomod.server_add_provider(self, metadata, public_key, certificate) + def dump(self): + return lassomod.server_dump(self) + class Login: """\brief Short desc @@ -888,11 +896,11 @@ class Login: def dump(self): return lassomod.login_dump(self) - def handle_authn_response_msg(self, authn_response_msg): - return lassomod.login_handle_authn_response_msg(self, authn_response_msg) + def process_authn_response_msg(self, authn_response_msg): + return lassomod.login_process_authn_response_msg(self, authn_response_msg) - def handle_request_msg(self, request_msg): - return lassomod.login_handle_request_msg(self, request_msg) + def process_request_msg(self, request_msg): + return lassomod.login_process_request_msg(self, request_msg) def init_authn_request(self, remote_providerID): return lassomod.login_init_authn_request(self, remote_providerID) diff --git a/python/lassomod.c b/python/lassomod.c index ce18c5e4..8d6c4a69 100644 --- a/python/lassomod.c +++ b/python/lassomod.c @@ -210,8 +210,8 @@ static PyMethodDef lasso_methods[] = { {"login_build_authn_response_msg", login_build_authn_response_msg, METH_VARARGS}, {"login_build_request_msg", login_build_request_msg, METH_VARARGS}, {"login_dump", login_dump, METH_VARARGS}, - {"login_handle_authn_response_msg", login_handle_authn_response_msg, METH_VARARGS}, - {"login_handle_request_msg", login_handle_request_msg, METH_VARARGS}, + {"login_process_authn_response_msg", login_process_authn_response_msg, METH_VARARGS}, + {"login_process_request_msg", login_process_request_msg, METH_VARARGS}, {"login_init_authn_request", login_init_authn_request, METH_VARARGS}, {"login_init_from_authn_request_msg", login_init_from_authn_request_msg, METH_VARARGS}, {"login_init_request", login_init_request, METH_VARARGS}, @@ -226,8 +226,10 @@ static PyMethodDef lasso_methods[] = { {"logout_handle_response_msg", logout_handle_response_msg, METH_VARARGS}, /* py_server.h */ - {"server_new", server_new, METH_VARARGS}, - {"server_add_provider", server_add_provider, METH_VARARGS}, + {"server_new", server_new, METH_VARARGS}, + {"server_new_from_dump", server_new_from_dump, METH_VARARGS}, + {"server_add_provider", server_add_provider, METH_VARARGS}, + {"server_dump", server_dump, METH_VARARGS}, /* py_user.h */ {"user_new", user_new, METH_VARARGS}, |