summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-ff/lecp.c24
-rw-r--r--lasso/id-ff/lecp.h4
-rw-r--r--python/environs/py_lecp.c23
3 files changed, 26 insertions, 25 deletions
diff --git a/lasso/id-ff/lecp.c b/lasso/id-ff/lecp.c
index 634847b6..88d4de43 100644
--- a/lasso/id-ff/lecp.c
+++ b/lasso/id-ff/lecp.c
@@ -97,19 +97,24 @@ lasso_lecp_destroy(LassoLecp *lecp)
gint
lasso_lecp_init_authn_request_envelope(LassoLecp *lecp,
- LassoServer *server,
LassoAuthnRequest *authnRequest)
{
gchar *assertionConsumerServiceURL;
g_return_val_if_fail(LASSO_IS_LECP(lecp), -1);
+ g_return_val_if_fail(LASSO_IS_AUTHN_REQUEST(authnRequest), -1);
- assertionConsumerServiceURL = lasso_provider_get_assertionConsumerServiceURL(LASSO_PROVIDER(server),
+ assertionConsumerServiceURL = lasso_provider_get_assertionConsumerServiceURL(LASSO_PROVIDER(lecp->server),
lassoProviderTypeSp,
NULL);
+ if(assertionConsumerServiceURL==NULL){
+ message(G_LOG_LEVEL_CRITICAL, "AssertionConsumerServiceURL not found\n");
+ return(-1);
+ }
+
lecp->request = lasso_authn_request_envelope_new(authnRequest,
- server->providerID,
+ lecp->server->providerID,
assertionConsumerServiceURL);
if(lecp->request==NULL){
message(G_LOG_LEVEL_CRITICAL, "Error while building request\n");
@@ -123,7 +128,6 @@ lasso_lecp_init_authn_request_envelope(LassoLecp *lecp,
gint
lasso_lecp_init_authn_response_envelope(LassoLecp *lecp,
- LassoServer *server,
LassoAuthnRequest *authnRequest,
LassoAuthnResponse *authnResponse)
{
@@ -133,7 +137,6 @@ lasso_lecp_init_authn_response_envelope(LassoLecp *lecp,
g_return_val_if_fail(LASSO_IS_LECP(lecp), -1);
g_return_val_if_fail(LASSO_IS_AUTHN_REQUEST(authnRequest), -1);
- lecp->server = lasso_server_copy(server);
providerID = lasso_node_get_child_content(LASSO_NODE(authnRequest), "ProviderID",
NULL, NULL);
if(providerID == NULL) {
@@ -187,15 +190,12 @@ lasso_lecp_process_authn_response_envelope_msg(LassoLecp *lecp,
g_return_val_if_fail(LASSO_IS_LECP(lecp), -1);
g_return_val_if_fail(response_msg!=NULL, -2);
- printf("------------------- process authn response : %s\n", response_msg);
lecp->response = lasso_authn_response_envelope_new_from_export(response_msg, lassoNodeExportTypeSoap);
if (lecp->response == NULL) {
message(G_LOG_LEVEL_CRITICAL, "Error while building the authentication response envelope\n");
return(-3);
}
- printf("apres new_from_dump : %s\n", lasso_node_export(lecp->response));
-
lecp->authnResponse = lasso_authn_response_envelope_get_authnResponse(LASSO_AUTHN_RESPONSE_ENVELOPE(lecp->response));
if (lecp->authnResponse == NULL) {
message(G_LOG_LEVEL_CRITICAL, "AuthnResponse not found\n");
@@ -231,6 +231,7 @@ lasso_lecp_finalize(LassoLecp *lecp)
static void
lasso_lecp_instance_init(LassoLecp *lecp)
{
+ lecp->server = NULL;
lecp->request = NULL;
lecp->authnRequest = NULL;
lecp->response = NULL;
@@ -272,11 +273,16 @@ GType lasso_lecp_get_type() {
}
LassoLecp *
-lasso_lecp_new()
+lasso_lecp_new(LassoServer *server)
{
LassoLecp *lecp;
lecp = g_object_new(LASSO_TYPE_LECP, NULL);
+ if(LASSO_IS_SERVER(server)){
+ debug("Add server to lecp object\n");
+ lecp->server = lasso_server_copy(server);
+ }
+
return(lecp);
}
diff --git a/lasso/id-ff/lecp.h b/lasso/id-ff/lecp.h
index 8d2e3991..985ca5a3 100644
--- a/lasso/id-ff/lecp.h
+++ b/lasso/id-ff/lecp.h
@@ -72,7 +72,7 @@ struct _LassoLecpClass {
LASSO_EXPORT GType lasso_lecp_get_type (void);
-LASSO_EXPORT LassoLecp* lasso_lecp_new (void);
+LASSO_EXPORT LassoLecp* lasso_lecp_new (LassoServer *server);
LASSO_EXPORT gint lasso_lecp_build_authn_request_msg (LassoLecp *lecp);
@@ -85,11 +85,9 @@ LASSO_EXPORT gint lasso_lecp_build_authn_response_envelope_msg (LassoLec
LASSO_EXPORT void lasso_lecp_destroy (LassoLecp *lecp);
LASSO_EXPORT gint lasso_lecp_init_authn_request_envelope (LassoLecp *lecp,
- LassoServer *server,
LassoAuthnRequest *authnRequest);
LASSO_EXPORT gint lasso_lecp_init_authn_response_envelope (LassoLecp *lecp,
- LassoServer *server,
LassoAuthnRequest *authnRequest,
LassoAuthnResponse *authnResponse);
diff --git a/python/environs/py_lecp.c b/python/environs/py_lecp.c
index 60792585..942ff945 100644
--- a/python/environs/py_lecp.c
+++ b/python/environs/py_lecp.c
@@ -69,14 +69,15 @@ PyObject *lecp_getattr(PyObject *self, PyObject *args) {
PyObject *lecp_new(PyObject *self, PyObject *args) {
LassoLecp *lecp;
+ PyObject *server_obj;
- if (CheckArgs(args, ":lecp_new")) {
- if(!PyArg_ParseTuple(args, (char *) ":lecp_new"))
+ if (CheckArgs(args, "o:lecp_new")) {
+ if(!PyArg_ParseTuple(args, (char *) "|O:lecp_new", &server_obj))
return NULL;
}
else return NULL;
- lecp = lasso_lecp_new();
+ lecp = lasso_lecp_new(LassoServer_get(server_obj));
return (LassoLecp_wrap(lecp));
}
@@ -163,20 +164,18 @@ PyObject *lecp_destroy(PyObject *self, PyObject *args){
PyObject *lecp_init_authn_request_envelope(PyObject *self, PyObject *args){
PyObject *lecp_obj;
- PyObject *server_obj;
PyObject *authnRequest_obj;
gint codeError = 0;
- if (CheckArgs(args, "OOO:lecp_init_authn_request_envelope")) {
- if(!PyArg_ParseTuple(args, (char *) "OOO:lecp_init_authn_request_envelope",
- &lecp_obj, &server_obj, &authnRequest_obj))
+ if (CheckArgs(args, "OO:lecp_init_authn_request_envelope")) {
+ if(!PyArg_ParseTuple(args, (char *) "OO:lecp_init_authn_request_envelope",
+ &lecp_obj, &authnRequest_obj))
return NULL;
}
else return NULL;
codeError = lasso_lecp_init_authn_request_envelope(LassoLecp_get(lecp_obj),
- LassoServer_get(server_obj),
LassoAuthnRequest_get(authnRequest_obj));
return(int_wrap(codeError));
@@ -184,21 +183,19 @@ PyObject *lecp_init_authn_request_envelope(PyObject *self, PyObject *args){
PyObject *lecp_init_authn_response_envelope(PyObject *self, PyObject *args){
PyObject *lecp_obj;
- PyObject *server_obj;
PyObject *authnRequest_obj;
PyObject *authnResponse_obj;
gint codeError = 0;
- if (CheckArgs(args, "OOOO:lecp_init_authn_response_envelope")) {
- if(!PyArg_ParseTuple(args, (char *) "OOOO:lecp_init_authn_response_envelope",
- &lecp_obj, &server_obj, &authnRequest_obj, &authnResponse_obj))
+ if (CheckArgs(args, "OOO:lecp_init_authn_response_envelope")) {
+ if(!PyArg_ParseTuple(args, (char *) "OOO:lecp_init_authn_response_envelope",
+ &lecp_obj, &authnRequest_obj, &authnResponse_obj))
return NULL;
}
else return NULL;
codeError = lasso_lecp_init_authn_response_envelope(LassoLecp_get(lecp_obj),
- LassoServer_get(server_obj),
LassoAuthnRequest_get(authnRequest_obj),
LassoAuthnResponse_get(authnResponse_obj));