From e8228dc6e7bf5b14b91c5de78934c9c601a9fc7a Mon Sep 17 00:00:00 2001 From: Nicolas Clapies Date: Thu, 29 Jul 2004 14:08:31 +0000 Subject: update of register name identifier --- .../protocols/register_name_identifier_request.c | 30 ++- .../protocols/register_name_identifier_request.h | 28 +-- .../protocols/register_name_identifier_response.c | 215 +++++++++++---------- .../protocols/register_name_identifier_response.h | 23 +-- 4 files changed, 160 insertions(+), 136 deletions(-) (limited to 'lasso/Attic') diff --git a/lasso/Attic/protocols/register_name_identifier_request.c b/lasso/Attic/protocols/register_name_identifier_request.c index 7ba10e71..908e1e29 100644 --- a/lasso/Attic/protocols/register_name_identifier_request.c +++ b/lasso/Attic/protocols/register_name_identifier_request.c @@ -30,7 +30,8 @@ /*****************************************************************************/ void -lasso_register_name_identifier_rename_attributes_for_query(LassoRegisterNameIdentifierRequest *request) +lasso_register_name_identifier_request_rename_attributes_for_query(LassoRegisterNameIdentifierRequest *request) + { LassoNode *idpidentifier, *spidentifier, *oldidentifier; @@ -151,7 +152,7 @@ lasso_register_name_identifier_request_new(const xmlChar *providerID, return (request); } -LassoNode * +static LassoNode * lasso_register_name_identifier_request_new_from_query(const xmlChar *query) { LassoNode *request, *idpidentifier, *spidentifier, *oldidentifier; @@ -228,7 +229,7 @@ lasso_register_name_identifier_request_new_from_query(const xmlChar *query) return(request); } -LassoNode * +static LassoNode * lasso_register_name_identifier_request_new_from_soap(const xmlChar *buffer) { LassoNode *request; @@ -252,3 +253,26 @@ lasso_register_name_identifier_request_new_from_soap(const xmlChar *buffer) return(request); } + +LassoNode* +lasso_register_name_identifier_request_new_from_export(gchar *buffer, + lassoNodeExportTypes export_type) +{ + LassoNode *request; + + g_return_val_if_fail(buffer != NULL, NULL); + + switch(export_type){ + case lassoNodeExportTypeQuery: + request = lasso_register_name_identifier_request_new_from_query(buffer); + break; + case lassoNodeExportTypeSoap: + request = lasso_register_name_identifier_request_new_from_soap(buffer); + break; + default: + message(G_LOG_LEVEL_ERROR, "Invalid export type\n"); + request = NULL; + } + + return(request); +} diff --git a/lasso/Attic/protocols/register_name_identifier_request.h b/lasso/Attic/protocols/register_name_identifier_request.h index a86566b5..fbd450bf 100644 --- a/lasso/Attic/protocols/register_name_identifier_request.h +++ b/lasso/Attic/protocols/register_name_identifier_request.h @@ -52,24 +52,24 @@ struct _LassoRegisterNameIdentifierRequestClass { LassoLibRegisterNameIdentifierRequestClass parent; }; -LASSO_EXPORT GType lasso_register_name_identifier_request_get_type (void); +LASSO_EXPORT GType lasso_register_name_identifier_request_get_type (void); -LASSO_EXPORT LassoNode* lasso_register_name_identifier_request_new (const xmlChar *providerID, - const xmlChar *idpProvidedNameIdentifier, - const xmlChar *idpNameQualifier, - const xmlChar *idpFormat, - const xmlChar *spProvidedNameIdentifier, - const xmlChar *spNameQualifier, - const xmlChar *spFormat, - const xmlChar *oldProvidedNameIdentifier, - const xmlChar *oldNameQualifier, - const xmlChar *oldFormat); +LASSO_EXPORT LassoNode* lasso_register_name_identifier_request_new (const xmlChar *providerID, + const xmlChar *idpProvidedNameIdentifier, + const xmlChar *idpNameQualifier, + const xmlChar *idpFormat, + const xmlChar *spProvidedNameIdentifier, + const xmlChar *spNameQualifier, + const xmlChar *spFormat, + const xmlChar *oldProvidedNameIdentifier, + const xmlChar *oldNameQualifier, + const xmlChar *oldFormat); -LASSO_EXPORT LassoNode* lasso_register_name_identifier_request_new_from_query (const xmlChar *query); -LASSO_EXPORT LassoNode* lasso_register_name_identifier_request_new_from_soap (const xmlChar *buffer); +LASSO_EXPORT LassoNode* lasso_register_name_identifier_request_new_from_export (gchar *buffer, + lassoNodeExportTypes export_type); +LASSO_EXPORT void lasso_register_name_identifier_request_rename_attributes_for_query (LassoRegisterNameIdentifierRequest *request); -LASSO_EXPORT void lasso_register_name_identifier_rename_attributes_for_query(LassoRegisterNameIdentifierRequest *request); #ifdef __cplusplus } diff --git a/lasso/Attic/protocols/register_name_identifier_response.c b/lasso/Attic/protocols/register_name_identifier_response.c index 46693ad5..ba64a2e7 100644 --- a/lasso/Attic/protocols/register_name_identifier_response.c +++ b/lasso/Attic/protocols/register_name_identifier_response.c @@ -29,6 +29,84 @@ /* public methods */ /*****************************************************************************/ +/*****************************************************************************/ +/* private methods */ +/*****************************************************************************/ + +static LassoNode* +lasso_register_name_identifier_response_new_from_query(gchar *query) +{ + LassoNode *response; + xmlChar *relayState; + GData *gd; + + response = LASSO_NODE(g_object_new(LASSO_TYPE_REGISTER_NAME_IDENTIFIER_RESPONSE, NULL)); + + gd = lasso_query_to_dict(query); + + /* ResponseID */ + lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response), + lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ResponseID"), 0)); + + /* MajorVersion */ + lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response), + lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0)); + + /* MinorVersion */ + lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response), + lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0)); + + /* IssueInstant */ + lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response), + lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstance"), 0)); + + /* InResponseTo */ + lasso_samlp_response_abstract_set_inResponseTo(LASSO_SAMLP_RESPONSE_ABSTRACT(response), + lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "InResponseTo"), 0)); + + /* Recipient */ + lasso_samlp_response_abstract_set_recipient(LASSO_SAMLP_RESPONSE_ABSTRACT(response), + lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "Recipient"), 0)); + + /* ProviderID */ + lasso_lib_status_response_set_providerID(LASSO_LIB_STATUS_RESPONSE(response), + lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0)); + + /* RelayState */ + relayState = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RelayState"), 0); + if (relayState != NULL) + lasso_lib_status_response_set_relayState(LASSO_LIB_STATUS_RESPONSE(response), relayState); + + g_datalist_clear(&gd); + + return(response); +} + +static LassoNode* +lasso_register_name_identifier_response_new_from_soap(gchar *buffer) +{ + LassoNode *response; + LassoNode *envelope, *lassoNode_response; + xmlNodePtr xmlNode_response; + LassoNodeClass *class; + + response = LASSO_NODE(g_object_new(LASSO_TYPE_REGISTER_NAME_IDENTIFIER_RESPONSE, NULL)); + + envelope = lasso_node_new_from_dump(buffer); + lassoNode_response = lasso_node_get_child(envelope, "RegisterNameIdentifierResponse", + lassoLibHRef); + + 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); +} + /*****************************************************************************/ /* instance and class init functions */ /*****************************************************************************/ @@ -67,9 +145,9 @@ GType lasso_register_name_identifier_response_get_type() { } LassoNode* -lasso_register_name_identifier_response_new(const xmlChar *providerID, - const xmlChar *statusCodeValue, - LassoNode *request) +lasso_register_name_identifier_response_new(gchar *providerID, + gchar *statusCodeValue, + LassoNode *request) { /* FIXME : change request type */ LassoNode *response, *ss, *ssc, *request_providerID, *request_relayState; @@ -131,124 +209,49 @@ lasso_register_name_identifier_response_new(const xmlChar *providerID, return (response); } -LassoNode * -lasso_register_name_identifier_response_new_from_dump(const xmlChar *buffer) -{ - LassoNode *response; - - response = LASSO_NODE(g_object_new(LASSO_TYPE_REGISTER_NAME_IDENTIFIER_RESPONSE, NULL)); - lasso_node_import(response, buffer); - - return (response); -} - -/* build a RegisterNameIdentifierResponse from a query form RegisterNameIdentifierResponse */ -LassoNode * -lasso_register_name_identifier_response_new_from_query(const xmlChar *query) -{ - LassoNode *response; - xmlChar *relayState; - GData *gd; - - response = LASSO_NODE(g_object_new(LASSO_TYPE_REGISTER_NAME_IDENTIFIER_RESPONSE, NULL)); - - gd = lasso_query_to_dict(query); - - /* ResponseID */ - lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response), - lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ResponseID"), 0)); - - /* MajorVersion */ - lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response), - lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0)); - - /* MinorVersion */ - lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response), - lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0)); - - /* IssueInstant */ - lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response), - lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstance"), 0)); - - /* InResponseTo */ - lasso_samlp_response_abstract_set_inResponseTo(LASSO_SAMLP_RESPONSE_ABSTRACT(response), - lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "InResponseTo"), 0)); - - /* Recipient */ - lasso_samlp_response_abstract_set_recipient(LASSO_SAMLP_RESPONSE_ABSTRACT(response), - lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "Recipient"), 0)); - - /* ProviderID */ - lasso_lib_status_response_set_providerID(LASSO_LIB_STATUS_RESPONSE(response), - lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0)); - - /* RelayState */ - relayState = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RelayState"), 0); - if (relayState != NULL) - lasso_lib_status_response_set_relayState(LASSO_LIB_STATUS_RESPONSE(response), relayState); - - g_datalist_clear(&gd); - - return(response); -} - -/* build a RegisterNameIdentifierResponse from a query form RegisterNameIdentifierRequest */ -LassoNode * -lasso_register_name_identifier_response_new_from_request_query(const xmlChar *query, - const xmlChar *providerID, - const xmlChar *statusCodeValue) +LassoNode* +lasso_register_name_identifier_response_new_from_request_export(gchar *buffer, + lassoNodeExportTypes export_type, + gchar *providerID, + gchar *statusCodeValue) { LassoNode *request, *response; - request = lasso_register_name_identifier_request_new_from_query(query); - - response = lasso_register_name_identifier_response_new(providerID, - statusCodeValue, - request); - lasso_node_destroy(request); + g_return_val_if_fail(buffer != NULL, NULL); - return(response); -} - -/* build a RegisterNameIdentifierRespose from a soap form RegisterNameIdentifierRequest */ -LassoNode * -lasso_register_name_identifier_response_new_from_request_soap(const xmlChar *buffer, - const xmlChar *providerID, - const xmlChar *statusCodeValue) -{ - LassoNode *request, *response; + request = lasso_register_name_identifier_request_new_from_export(buffer, export_type); - request = lasso_register_name_identifier_request_new_from_soap(buffer); + if(request){ + message(G_LOG_LEVEL_ERROR, "Error while building RegisterNameIdentifierRequest\n"); + return(NULL); + } response = lasso_register_name_identifier_response_new(providerID, - statusCodeValue, - request); - lasso_node_destroy(request); + statusCodeValue, + request); return(response); } -LassoNode * -lasso_register_name_identifier_response_new_from_soap(const xmlChar *buffer) +LassoNode* +lasso_register_name_identifier_response_new_from_export(gchar *buffer, + lassoNodeExportTypes export_type) { LassoNode *response; - LassoNode *envelope, *lassoNode_response; - xmlNodePtr xmlNode_response; - LassoNodeClass *class; - response = LASSO_NODE(g_object_new(LASSO_TYPE_REGISTER_NAME_IDENTIFIER_RESPONSE, NULL)); + g_return_val_if_fail(buffer != NULL, NULL); - envelope = lasso_node_new_from_dump(buffer); - lassoNode_response = lasso_node_get_child(envelope, "RegisterNameIdentifierResponse", - lassoLibHRef); - - class = LASSO_NODE_GET_CLASS(lassoNode_response); - xmlNode_response = xmlCopyNode(class->get_xmlNode(LASSO_NODE(lassoNode_response)), 1); - lasso_node_destroy(lassoNode_response); + switch(export_type){ + case lassoNodeExportTypeQuery: + response = lasso_register_name_identifier_response_new_from_query(buffer); + break; + case lassoNodeExportTypeSoap: + response = lasso_register_name_identifier_response_new_from_soap(buffer); + break; + default: + message(G_LOG_LEVEL_ERROR, "Invalid export type\n"); + return(NULL); + } - class = LASSO_NODE_GET_CLASS(response); - class->set_xmlNode(LASSO_NODE(response), xmlNode_response); - lasso_node_destroy(envelope); - return(response); } diff --git a/lasso/Attic/protocols/register_name_identifier_response.h b/lasso/Attic/protocols/register_name_identifier_response.h index b3b2ea70..bd9fbb65 100644 --- a/lasso/Attic/protocols/register_name_identifier_response.h +++ b/lasso/Attic/protocols/register_name_identifier_response.h @@ -53,22 +53,19 @@ struct _LassoRegisterNameIdentifierResponseClass { LassoLibRegisterNameIdentifierResponseClass parent; }; -LASSO_EXPORT GType lasso_register_name_identifier_response_get_type (void); -LASSO_EXPORT LassoNode* lasso_register_name_identifier_response_new (const xmlChar *providerID, - const xmlChar *statusCodeValue, - LassoNode *request); +LASSO_EXPORT GType lasso_register_name_identifier_response_get_type (void); -LASSO_EXPORT LassoNode * lasso_register_name_identifier_response_new_from_dump (const xmlChar *buffer); -LASSO_EXPORT LassoNode * lasso_register_name_identifier_response_new_from_query (const xmlChar *query); -LASSO_EXPORT LassoNode * lasso_register_name_identifier_response_new_from_request_query (const xmlChar *query, - const xmlChar *providerID, - const xmlChar *statusCodeValue); -LASSO_EXPORT LassoNode * lasso_register_name_identifier_response_new_from_request_soap (const xmlChar *buffer, - const xmlChar *providerID, - const xmlChar *statusCodeValue); +LASSO_EXPORT LassoNode* lasso_register_name_identifier_response_new (gchar *providerID, + gchar *statusCodeValue, + LassoNode *request); -LASSO_EXPORT LassoNode * lasso_register_name_identifier_response_new_from_soap (const xmlChar *buffer); +LASSO_EXPORT LassoNode* lasso_register_name_identifier_response_new_from_export (gchar *buffer, + lassoNodeExportTypes export_type); +LASSO_EXPORT LassoNode* lasso_register_name_identifier_response_new_from_request_export (gchar *buffer, + lassoNodeExportTypes export_type, + gchar *providerID, + gchar *statusCodeValue); #ifdef __cplusplus } -- cgit