diff options
author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-07-30 13:39:30 +0000 |
---|---|---|
committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-07-30 13:39:30 +0000 |
commit | e4b04efa9cb9adf01464d28dbea28ef03d92d1c3 (patch) | |
tree | f0093daf90f5dc76f5d95d05c4b036443f67fa86 /lasso/Attic | |
parent | 2f28f2508d942c9ee82c9afcdca43bbdc82d1e58 (diff) | |
download | lasso-e4b04efa9cb9adf01464d28dbea28ef03d92d1c3.tar.gz lasso-e4b04efa9cb9adf01464d28dbea28ef03d92d1c3.tar.xz lasso-e4b04efa9cb9adf01464d28dbea28ef03d92d1c3.zip |
lecp in environs is complete
Diffstat (limited to 'lasso/Attic')
-rw-r--r-- | lasso/Attic/protocols/authn_request_envelope.c | 12 | ||||
-rw-r--r-- | lasso/Attic/protocols/authn_request_envelope.h | 8 | ||||
-rw-r--r-- | lasso/Attic/protocols/authn_response_envelope.c | 46 | ||||
-rw-r--r-- | lasso/Attic/protocols/authn_response_envelope.h | 5 |
4 files changed, 53 insertions, 18 deletions
diff --git a/lasso/Attic/protocols/authn_request_envelope.c b/lasso/Attic/protocols/authn_request_envelope.c index 17edaefa..0058637f 100644 --- a/lasso/Attic/protocols/authn_request_envelope.c +++ b/lasso/Attic/protocols/authn_request_envelope.c @@ -79,19 +79,19 @@ GType lasso_authn_request_envelope_get_type() { } LassoNode* -lasso_authn_request_envelope_new(LassoLibAuthnRequest *authnRequest, - const xmlChar *providerID, - const xmlChar *assertionConsumerServiceURL) +lasso_authn_request_envelope_new(LassoAuthnRequest *authnRequest, + xmlChar *providerID, + xmlChar *assertionConsumerServiceURL) { LassoNode *request; - g_return_val_if_fail(LASSO_IS_LIB_AUTHN_REQUEST(authnRequest), NULL); + g_return_val_if_fail(LASSO_IS_AUTHN_REQUEST(authnRequest), NULL); g_return_val_if_fail(providerID!=NULL, NULL); g_return_val_if_fail(assertionConsumerServiceURL!=NULL, NULL); request = LASSO_NODE(g_object_new(LASSO_TYPE_AUTHN_REQUEST_ENVELOPE, NULL)); - lasso_lib_authn_request_envelope_set_authnRequest(LASSO_LIB_AUTHN_REQUEST_ENVELOPE(request), authnRequest); + lasso_lib_authn_request_envelope_set_authnRequest(LASSO_LIB_AUTHN_REQUEST_ENVELOPE(request), LASSO_LIB_AUTHN_REQUEST(authnRequest)); lasso_lib_authn_request_envelope_set_providerID(LASSO_LIB_AUTHN_REQUEST_ENVELOPE(request), providerID); lasso_lib_authn_request_envelope_set_assertionConsumerServiceURL(LASSO_LIB_AUTHN_REQUEST_ENVELOPE(request), assertionConsumerServiceURL); @@ -116,7 +116,9 @@ lasso_authn_request_envelope_new_from_export(gchar *buffer, xmlSecBase64Decode(buffer, buffer_decoded, strlen(buffer)); lasso_node_import(request, buffer_decoded); xmlFree(buffer_decoded); + break; default: + message(G_LOG_LEVEL_ERROR, "Invalid export type : %d\n", export_type); break; } diff --git a/lasso/Attic/protocols/authn_request_envelope.h b/lasso/Attic/protocols/authn_request_envelope.h index 7440ac81..86e507ba 100644 --- a/lasso/Attic/protocols/authn_request_envelope.h +++ b/lasso/Attic/protocols/authn_request_envelope.h @@ -31,6 +31,8 @@ extern "C" { #endif /* __cplusplus */ #include <lasso/xml/lib_authn_request_envelope.h> +#include <lasso/protocols/authn_request.h> + #define LASSO_TYPE_AUTHN_REQUEST_ENVELOPE (lasso_authn_request_envelope_get_type()) #define LASSO_AUTHN_REQUEST_ENVELOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_AUTHN_REQUEST_ENVELOPE, LassoAuthnRequestEnvelope)) @@ -54,9 +56,9 @@ struct _LassoAuthnRequestEnvelopeClass { LASSO_EXPORT GType lasso_authn_request_envelope_get_type (void); -LASSO_EXPORT LassoNode* lasso_authn_request_envelope_new (LassoLibAuthnRequest *authnRequest, - const xmlChar *providerID, - const xmlChar *assertionConsumerServiceURL); +LASSO_EXPORT LassoNode* lasso_authn_request_envelope_new (LassoAuthnRequest *authnRequest, + xmlChar *providerID, + xmlChar *assertionConsumerServiceURL); LASSO_EXPORT LassoNode* lasso_authn_request_envelope_get_authnRequest (LassoAuthnRequestEnvelope *request); diff --git a/lasso/Attic/protocols/authn_response_envelope.c b/lasso/Attic/protocols/authn_response_envelope.c index 53dcc4fd..db4d3154 100644 --- a/lasso/Attic/protocols/authn_response_envelope.c +++ b/lasso/Attic/protocols/authn_response_envelope.c @@ -34,7 +34,7 @@ /* public methods */ /*****************************************************************************/ -xmlChar *lasso_authn_response_envelope_get_assertionConsumerServiceURL (LassoAuthnResponseEnvelope *response) +xmlChar *lasso_authn_response_envelope_get_assertionConsumerServiceURL(LassoAuthnResponseEnvelope *response) { g_return_val_if_fail(LASSO_IS_AUTHN_RESPONSE_ENVELOPE(response), NULL); @@ -86,41 +86,71 @@ GType lasso_authn_response_envelope_get_type() { } LassoNode* -lasso_authn_response_envelope_new(LassoLibAuthnResponse *authnResponse, - const xmlChar *assertionConsumerServiceURL) +lasso_authn_response_envelope_new(LassoAuthnResponse *authnResponse, + xmlChar *assertionConsumerServiceURL) { LassoNode *response; - g_return_val_if_fail(LASSO_IS_LIB_AUTHN_RESPONSE(authnResponse), NULL); + g_return_val_if_fail(LASSO_IS_AUTHN_RESPONSE(authnResponse), NULL); g_return_val_if_fail(assertionConsumerServiceURL!=NULL, NULL); response = LASSO_NODE(g_object_new(LASSO_TYPE_AUTHN_RESPONSE_ENVELOPE, NULL)); - lasso_lib_authn_response_envelope_set_authnResponse(LASSO_LIB_AUTHN_RESPONSE_ENVELOPE(response), authnResponse); + lasso_lib_authn_response_envelope_set_authnResponse(LASSO_LIB_AUTHN_RESPONSE_ENVELOPE(response), + LASSO_LIB_AUTHN_RESPONSE(authnResponse)); lasso_lib_authn_response_envelope_set_assertionConsumerServiceURL(LASSO_LIB_AUTHN_RESPONSE_ENVELOPE(response), assertionConsumerServiceURL); return(response); } +static LassoNode * +lasso_authn_response_envelope_new_from_soap(gchar *buffer) +{ + LassoNode *response; + LassoNode *envelope, *lassoNode_response; + xmlNodePtr xmlNode_response; + LassoNodeClass *class; + + response = LASSO_NODE(g_object_new(LASSO_TYPE_AUTHN_RESPONSE_ENVELOPE, NULL)); + + envelope = lasso_node_new_from_dump(buffer); + lassoNode_response = lasso_node_get_child(envelope, "AuthnResponseEnvelope", NULL); + + class = LASSO_NODE_GET_CLASS(lassoNode_response); + xmlNode_response = xmlCopyNode(class->get_xmlNode(LASSO_NODE(lassoNode_response)), 1); + lasso_node_destroy(lassoNode_response); + + class = LASSO_NODE_GET_CLASS(response); + class->set_xmlNode(LASSO_NODE(response), xmlNode_response); + lasso_node_destroy(envelope); + + return(response); +} + LassoNode* lasso_authn_response_envelope_new_from_export(gchar *buffer, lassoNodeExportTypes export_type) { - LassoNode *response; + LassoNode *response = NULL; xmlChar *buffer_decoded; g_return_val_if_fail(buffer != NULL, NULL); - response = LASSO_NODE(g_object_new(LASSO_TYPE_AUTHN_RESPONSE_ENVELOPE, NULL)); - switch(export_type){ case lassoNodeExportTypeBase64: + response = LASSO_NODE(g_object_new(LASSO_TYPE_AUTHN_RESPONSE_ENVELOPE, NULL)); buffer_decoded = xmlMalloc(strlen(buffer)); xmlSecBase64Decode(buffer, buffer_decoded, strlen(buffer)); lasso_node_import(response, buffer_decoded); xmlFree(buffer_decoded); + break; + case lassoNodeExportTypeSoap: + response = lasso_authn_response_envelope_new_from_soap(buffer); + break; default: + message(G_LOG_LEVEL_CRITICAL, "Invalid export type\n"); + return(NULL); break; } diff --git a/lasso/Attic/protocols/authn_response_envelope.h b/lasso/Attic/protocols/authn_response_envelope.h index 146bac37..5cbaaa60 100644 --- a/lasso/Attic/protocols/authn_response_envelope.h +++ b/lasso/Attic/protocols/authn_response_envelope.h @@ -31,6 +31,7 @@ extern "C" { #endif /* __cplusplus */ #include <lasso/xml/lib_authn_response_envelope.h> +#include <lasso/protocols/authn_response.h> #define LASSO_TYPE_AUTHN_RESPONSE_ENVELOPE (lasso_authn_response_envelope_get_type()) #define LASSO_AUTHN_RESPONSE_ENVELOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_AUTHN_RESPONSE_ENVELOPE, LassoAuthnResponseEnvelope)) @@ -54,8 +55,8 @@ struct _LassoAuthnResponseEnvelopeClass { LASSO_EXPORT GType lasso_authn_response_envelope_get_type (void); -LASSO_EXPORT LassoNode* lasso_authn_response_envelope_new (LassoLibAuthnResponse *authnResponse, - const xmlChar *assertionConsumerServiceURL); +LASSO_EXPORT LassoNode* lasso_authn_response_envelope_new (LassoAuthnResponse *authnResponse, + xmlChar *assertionConsumerServiceURL); LASSO_EXPORT xmlChar* lasso_authn_response_envelope_get_assertionConsumerServiceURL (LassoAuthnResponseEnvelope *response); |