summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValery Febvre <vfebvre at easter-eggs.com>2004-05-05 23:57:25 +0000
committerValery Febvre <vfebvre at easter-eggs.com>2004-05-05 23:57:25 +0000
commit6878046a42ead812418d5a73c5347bb5aeeb1795 (patch)
tree104e50d1543204c048da3f0c64d393a536d16bf8
parent23d49536c103dbef67e6f4225354e5119a035640 (diff)
downloadlasso-6878046a42ead812418d5a73c5347bb5aeeb1795.tar.gz
lasso-6878046a42ead812418d5a73c5347bb5aeeb1795.tar.xz
lasso-6878046a42ead812418d5a73c5347bb5aeeb1795.zip
minor changes
-rw-r--r--lasso/Attic/protocols/logout_request.c203
-rw-r--r--lasso/Attic/protocols/logout_request.h12
-rw-r--r--lasso/Attic/protocols/logout_response.c271
-rw-r--r--lasso/Attic/protocols/logout_response.h13
4 files changed, 242 insertions, 257 deletions
diff --git a/lasso/Attic/protocols/logout_request.c b/lasso/Attic/protocols/logout_request.c
index c48ef023..f74afffd 100644
--- a/lasso/Attic/protocols/logout_request.c
+++ b/lasso/Attic/protocols/logout_request.c
@@ -26,17 +26,10 @@
#include <lasso/protocols/logout_request.h>
#include <lasso/xml/saml_name_identifier.h>
-
-/*****************************************************************************/
-/* private methods */
-/*****************************************************************************/
-
-
/*****************************************************************************/
/* public methods */
/*****************************************************************************/
-
/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
@@ -80,119 +73,117 @@ lasso_logout_request_new(const xmlChar *providerID,
const xmlChar *nameQualifier,
const xmlChar *format)
{
- LassoNode *request, *identifier;
-
- request = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_REQUEST, NULL));
-
- /* RequestID */
- lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
- (const xmlChar *)lasso_build_unique_id(32));
- /* MajorVersion */
- lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
- lassoLibMajorVersion);
- /* MinorVersion */
- lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
+ LassoNode *request, *identifier;
+
+ request = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_REQUEST, NULL));
+
+ /* RequestID */
+ lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request),
+ (const xmlChar *)lasso_build_unique_id(32));
+ /* MajorVersion */
+ lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
+ lassoLibMajorVersion);
+ /* MinorVersion */
+ lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request),
lassoLibMinorVersion);
- /* IssueInstant */
- lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
- lasso_get_current_time());
- /* ProviderID */
- lasso_lib_logout_request_set_providerID(LASSO_LIB_LOGOUT_REQUEST(request),
- providerID);
-
- identifier = lasso_saml_name_identifier_new(nameIdentifier);
- lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(identifier), nameQualifier);
- lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(identifier), format);
-
- lasso_lib_logout_request_set_nameIdentifier(LASSO_LIB_LOGOUT_REQUEST(request),
- LASSO_SAML_NAME_IDENTIFIER(identifier));
-
- return(request);
+ /* IssueInstant */
+ lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request),
+ lasso_get_current_time());
+ /* ProviderID */
+ lasso_lib_logout_request_set_providerID(LASSO_LIB_LOGOUT_REQUEST(request),
+ providerID);
+
+ identifier = lasso_saml_name_identifier_new(nameIdentifier);
+ lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(identifier),
+ nameQualifier);
+ lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(identifier), format);
+
+ lasso_lib_logout_request_set_nameIdentifier(LASSO_LIB_LOGOUT_REQUEST(request),
+ LASSO_SAML_NAME_IDENTIFIER(identifier));
+
+ return(request);
}
LassoNode *
-lasso_logout_request_new_from_soap(const xmlChar *soap_buffer)
+lasso_logout_request_new_from_query(const xmlChar *query)
{
- LassoNode *request;
-
- LassoNode *envelope, *lassoNode_request;
- xmlNodePtr xmlNode_request;
+ LassoNode *request, *identifier;
+ xmlChar *str;
+ GData *gd;
- LassoNodeClass *class;
+ request = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_REQUEST, NULL));
- request = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_REQUEST, NULL));
-
- envelope = lasso_node_new(NULL);
- lasso_node_parse_memory(envelope, soap_buffer);
- lassoNode_request = lasso_node_get_child(envelope, "LogoutRequest");
+ gd = lasso_query_to_dict(query);
+
+ /* RequestID */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RequestID"), 0);
+ lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request), str);
+
+ /* MajorVersion */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0);
+ lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request), str);
+
+ /* MinorVersion */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0);
+ lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request), str);
+
+ /* IssueInstant */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstance"), 0);
+ lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request), str);
+
+ /* ProviderID */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0);
+ lasso_lib_logout_request_set_providerID(LASSO_LIB_LOGOUT_REQUEST(request), str);
+
+ /* NameIdentifier */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameIdentifier"), 0);
+ identifier = lasso_saml_name_identifier_new(str);
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameQualifier"), 0);
+ lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(identifier), str);
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "Format"), 0);
+ lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(identifier), str);
- class = LASSO_NODE_GET_CLASS(lassoNode_request);
- xmlNode_request = xmlCopyNode(class->get_xmlNode(LASSO_NODE(lassoNode_request)), 1);
+ lasso_lib_logout_request_set_nameIdentifier(LASSO_LIB_LOGOUT_REQUEST(request), identifier);
+
+ /* RelayState */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RelayState"), 0);
+ if (str != NULL)
+ lasso_lib_logout_request_set_relayState(LASSO_LIB_LOGOUT_REQUEST(request), str);
+
+ /* SessionIndex */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "SessionIndex"), 0);
+ if (str != NULL)
+ lasso_lib_logout_request_set_sessionIndex(LASSO_SAML_NAME_IDENTIFIER(identifier), str);
+
+ /* consent */
+ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "consent"), 0);
+ if (str != NULL)
+ lasso_lib_logout_request_set_consent(LASSO_LIB_LOGOUT_REQUEST(request), str);
- class = LASSO_NODE_GET_CLASS(request);
- class->set_xmlNode(LASSO_NODE(request), xmlNode_request);
- g_object_unref(lassoNode_request);
+ g_datalist_clear(&gd);
- return(request);
+ return(request);
}
LassoNode *
-lasso_logout_request_new_from_query(const xmlChar *query)
+lasso_logout_request_new_from_soap(const xmlChar *buffer)
{
- LassoNode *request, *identifier;
-
- xmlChar *str;
-
- GData *gd;
-
- request = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_REQUEST, NULL));
-
- gd = lasso_query_to_dict(query);
-
- /* RequestID */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RequestID"), 0);
- lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request), str);
+ LassoNode *request;
+ LassoNode *envelope, *lassoNode_request;
+ xmlNodePtr xmlNode_request;
+ LassoNodeClass *class;
- /* MajorVersion */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0);
- lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request), str);
+ request = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_REQUEST, NULL));
- /* MinorVersion */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0);
- lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request), str);
-
- /* IssueInstant */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstance"), 0);
- lasso_samlp_request_abstract_set_issueInstance(LASSO_SAMLP_REQUEST_ABSTRACT(request), str);
-
- /* ProviderID */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0);
- lasso_lib_logout_request_set_providerID(LASSO_LIB_LOGOUT_REQUEST(request), str);
-
- /* NameIdentifier */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameIdentifier"), 0);
- identifier = lasso_saml_name_identifier_new(str);
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameQualifier"), 0);
- lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(identifier), str);
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "Format"), 0);
- lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(identifier), str);
-
- lasso_lib_logout_request_set_nameIdentifier(LASSO_LIB_LOGOUT_REQUEST(request), identifier);
-
- /* RelayState */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RelayState"), 0);
- if(str!=NULL)
- lasso_lib_logout_request_set_relayState(LASSO_LIB_LOGOUT_REQUEST(request), str);
-
- /* SessionIndex */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "SessionIndex"), 0);
- if(str!=NULL)
- lasso_lib_logout_request_set_sessionIndex(LASSO_SAML_NAME_IDENTIFIER(identifier), str);
-
- /* consent */
- str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "consent"), 0);
- if(str!=NULL)
- lasso_lib_logout_request_set_consent(LASSO_LIB_LOGOUT_REQUEST(request), str);
-
- return(request);
+ envelope = lasso_node_new_from_dump(buffer);
+ lassoNode_request = lasso_node_get_child(envelope, "LogoutRequest");
+
+ class = LASSO_NODE_GET_CLASS(lassoNode_request);
+ xmlNode_request = xmlCopyNode(class->get_xmlNode(LASSO_NODE(lassoNode_request)), 1);
+
+ class = LASSO_NODE_GET_CLASS(request);
+ class->set_xmlNode(LASSO_NODE(request), xmlNode_request);
+ g_object_unref(envelope);
+
+ return(request);
}
diff --git a/lasso/Attic/protocols/logout_request.h b/lasso/Attic/protocols/logout_request.h
index 60b762f1..51787f1a 100644
--- a/lasso/Attic/protocols/logout_request.h
+++ b/lasso/Attic/protocols/logout_request.h
@@ -52,11 +52,13 @@ struct _LassoLogoutRequestClass {
LassoLibLogoutRequestClass parent;
};
-LASSO_EXPORT GType lasso_logout_request_get_type (void);
-LASSO_EXPORT LassoNode* lasso_logout_request_new (const xmlChar *providerID,
- const xmlChar *nameIdentifier,
- const xmlChar *nameQualifier,
- const xmlChar *format);
+LASSO_EXPORT GType lasso_logout_request_get_type (void);
+LASSO_EXPORT LassoNode* lasso_logout_request_new (const xmlChar *providerID,
+ const xmlChar *nameIdentifier,
+ const xmlChar *nameQualifier,
+ const xmlChar *format);
+LASSO_EXPORT LassoNode* lasso_logout_request_new_from_query (const xmlChar *query);
+LASSO_EXPORT LassoNode* lasso_logout_request_new_from_soap (const xmlChar *buffer);
#ifdef __cplusplus
}
diff --git a/lasso/Attic/protocols/logout_response.c b/lasso/Attic/protocols/logout_response.c
index 7c90f956..f2aa40bf 100644
--- a/lasso/Attic/protocols/logout_response.c
+++ b/lasso/Attic/protocols/logout_response.c
@@ -29,12 +29,6 @@
/* public methods */
/*****************************************************************************/
-
-/*****************************************************************************/
-/* private methods */
-/*****************************************************************************/
-
-
/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
@@ -77,69 +71,113 @@ lasso_logout_response_new(const xmlChar *providerID,
const xmlChar *statusCodeValue,
LassoNode *request)
{
- LassoNode *response, *ss, *ssc;
- xmlChar *inResponseTo, *recipient, *relayState;
-
- response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_RESPONSE, NULL));
-
- /* Set ONLY required elements/attributs */
- /* ResponseID */
- lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
- (const xmlChar *)lasso_build_unique_id(32));
- /* MajorVersion */
- lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
- lassoLibMajorVersion);
- /* MinorVersion */
- lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
- lassoLibMinorVersion);
- /* IssueInstant */
- lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
- lasso_get_current_time());
- /* ProviderID */
- lasso_lib_status_response_set_providerID(LASSO_LIB_STATUS_RESPONSE(response),
- providerID);
-
- inResponseTo = xmlNodeGetContent((xmlNodePtr)lasso_node_get_attr(request, "RequestID"));
- lasso_samlp_response_abstract_set_inResponseTo(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
- inResponseTo);
-
-
- recipient = lasso_node_get_content(lasso_node_get_child(request, "ProviderID"));
- lasso_samlp_response_abstract_set_recipient(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
- recipient);
-
- relayState = lasso_node_get_content(lasso_node_get_child(request, "RelayState"));
- if(relayState!=NULL)
- lasso_lib_status_response_set_relayState(LASSO_LIB_STATUS_RESPONSE(response),
- relayState);
+ LassoNode *response, *ss, *ssc;
+ xmlChar *inResponseTo, *recipient, *relayState;
+
+ response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_RESPONSE, NULL));
+
+ /* Set ONLY required elements/attributs */
+ /* ResponseID */
+ lasso_samlp_response_abstract_set_responseID(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
+ (const xmlChar *)lasso_build_unique_id(32));
+ /* MajorVersion */
+ lasso_samlp_response_abstract_set_majorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
+ lassoLibMajorVersion);
+ /* MinorVersion */
+ lasso_samlp_response_abstract_set_minorVersion(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
+ lassoLibMinorVersion);
+ /* IssueInstant */
+ lasso_samlp_response_abstract_set_issueInstance(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
+ lasso_get_current_time());
+ /* ProviderID */
+ lasso_lib_status_response_set_providerID(LASSO_LIB_STATUS_RESPONSE(response),
+ providerID);
+
+ inResponseTo = xmlNodeGetContent((xmlNodePtr)lasso_node_get_attr(request, "RequestID"));
+ lasso_samlp_response_abstract_set_inResponseTo(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
+ inResponseTo);
+
+
+ recipient = lasso_node_get_content(lasso_node_get_child(request, "ProviderID"));
+ lasso_samlp_response_abstract_set_recipient(LASSO_SAMLP_RESPONSE_ABSTRACT(response),
+ recipient);
+
+ relayState = lasso_node_get_content(lasso_node_get_child(request, "RelayState"));
+ if (relayState != NULL)
+ lasso_lib_status_response_set_relayState(LASSO_LIB_STATUS_RESPONSE(response),
+ relayState);
- ss = lasso_samlp_status_new();
- ssc = lasso_samlp_status_code_new();
- lasso_samlp_status_code_set_value(LASSO_SAMLP_STATUS_CODE(ssc),
- statusCodeValue);
- lasso_samlp_status_set_statusCode(LASSO_SAMLP_STATUS(ss),
- LASSO_SAMLP_STATUS_CODE(ssc));
- lasso_lib_status_response_set_status(LASSO_LIB_STATUS_RESPONSE(response),
- LASSO_SAMLP_STATUS(ss));
-
- return(response);
+ ss = lasso_samlp_status_new();
+ ssc = lasso_samlp_status_code_new();
+ lasso_samlp_status_code_set_value(LASSO_SAMLP_STATUS_CODE(ssc),
+ statusCodeValue);
+ lasso_samlp_status_set_statusCode(LASSO_SAMLP_STATUS(ss),
+ LASSO_SAMLP_STATUS_CODE(ssc));
+ lasso_lib_status_response_set_status(LASSO_LIB_STATUS_RESPONSE(response),
+ LASSO_SAMLP_STATUS(ss));
+
+ return (response);
}
-// build a LogoutRespose from a soap form LogoutRequest
LassoNode *
-lasso_logout_response_new_from_request_soap(const xmlChar *soap_buffer,
- const xmlChar *providerID,
- const xmlChar *statusCodeValue)
+lasso_logout_response_new_from_dump(const xmlChar *buffer)
{
- LassoNode *request, *response;
+ LassoNode *response;
+
+ response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_RESPONSE, NULL));
+ lasso_node_load_from_buffer(response, buffer);
+
+ return (response);
+}
- request = lasso_logout_request_new_from_soap(soap_buffer);
+// build a LogoutResponse from a query form LogoutResponse
+LassoNode *
+lasso_logout_response_new_from_query(const xmlChar *query)
+{
+ LassoNode *response;
+ xmlChar *relayState, *consent;
+ GData *gd;
+
+ response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_RESPONSE, NULL));
- response = lasso_logout_response_new(providerID,
- statusCodeValue,
- request);
+ 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);
+ return(response);
}
// build a LogoutResponse from a query form LogoutRequest
@@ -148,100 +186,53 @@ lasso_logout_response_new_from_request_query(const xmlChar *query,
const xmlChar *providerID,
const xmlChar *statusCodeValue)
{
- LassoNode *request, *response;
+ LassoNode *request, *response;
- request = lasso_logout_request_new_from_query(query);
-
- response = lasso_logout_response_new(providerID,
- statusCodeValue,
- request);
+ request = lasso_logout_request_new_from_query(query);
+
+ response = lasso_logout_response_new(providerID,
+ statusCodeValue,
+ request);
- return(response);
+ return(response);
}
-
+// build a LogoutRespose from a soap form LogoutRequest
LassoNode *
-lasso_logout_response_new_from_soap(const xmlChar *soap_buffer)
+lasso_logout_response_new_from_request_soap(const xmlChar *buffer,
+ const xmlChar *providerID,
+ const xmlChar *statusCodeValue)
{
- LassoNode *response;
-
- LassoNode *envelope, *lassoNode_response;
- xmlNodePtr xmlNode_response;
-
- LassoNodeClass *class;
+ LassoNode *request, *response;
- response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_RESPONSE, NULL));
+ request = lasso_logout_request_new_from_soap(buffer);
- envelope = lasso_node_new(NULL);
- lasso_node_parse_memory(envelope, soap_buffer);
- lassoNode_response = lasso_node_get_child(envelope, "LogoutResponse");
-
- class = LASSO_NODE_GET_CLASS(lassoNode_response);
- xmlNode_response = xmlCopyNode(class->get_xmlNode(LASSO_NODE(lassoNode_response)), 1);
-
- class = LASSO_NODE_GET_CLASS(response);
- class->set_xmlNode(LASSO_NODE(response), xmlNode_response);
- g_object_unref(lassoNode_response);
+ response = lasso_logout_response_new(providerID,
+ statusCodeValue,
+ request);
- return(response);
+ return(response);
}
-// build a LogoutResponse from a query form LogoutResponse
LassoNode *
-lasso_logout_response_new_from_query(const xmlChar *query)
+lasso_logout_response_new_from_soap(const xmlChar *buffer)
{
- LassoNode *response;
+ LassoNode *response;
+ LassoNode *envelope, *lassoNode_response;
+ xmlNodePtr xmlNode_response;
+ LassoNodeClass *class;
- xmlChar *relayState, *consent;
- GData *gd;
+ response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_RESPONSE, NULL));
- response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_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));
+ envelope = lasso_node_new_from_dump(buffer);
+ lassoNode_response = lasso_node_get_child(envelope, "LogoutResponse");
- /* 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));
+ class = LASSO_NODE_GET_CLASS(lassoNode_response);
+ xmlNode_response = xmlCopyNode(class->get_xmlNode(LASSO_NODE(lassoNode_response)), 1);
- /* 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);
-
- return(response);
-}
-
-LassoNode *
-lasso_logout_response_new_from_dump(const xmlChar *buffer)
-{
- LassoNode *response;
-
- response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_RESPONSE, NULL));
- lasso_node_parse_memory(response, buffer);
-
- return(response);
+ class = LASSO_NODE_GET_CLASS(response);
+ class->set_xmlNode(LASSO_NODE(response), xmlNode_response);
+ g_object_unref(envelope);
+
+ return(response);
}
diff --git a/lasso/Attic/protocols/logout_response.h b/lasso/Attic/protocols/logout_response.h
index 7eed010a..22fcfc27 100644
--- a/lasso/Attic/protocols/logout_response.h
+++ b/lasso/Attic/protocols/logout_response.h
@@ -57,18 +57,19 @@ LASSO_EXPORT LassoNode* lasso_logout_response_new (const xmlC
const xmlChar *statusCodeValue,
LassoNode *request);
-LASSO_EXPORT LassoNode* lasso_logout_response_new_from_request_soap (const xmlChar *soap_buffer,
- const xmlChar *providerID,
- const xmlChar *statusCodeValue);
+LASSO_EXPORT LassoNode* lasso_logout_response_new_from_dump (const xmlChar *buffer);
+
+LASSO_EXPORT LassoNode* lasso_logout_response_new_from_query (const xmlChar *query);
LASSO_EXPORT LassoNode* lasso_logout_response_new_from_request_query (const xmlChar *query,
const xmlChar *providerID,
const xmlChar *statusCodeValue);
-LASSO_EXPORT LassoNode* lasso_logout_response_new_from_soap (const xmlChar *soap_buffer);
-
+LASSO_EXPORT LassoNode* lasso_logout_response_new_from_request_soap (const xmlChar *buffer,
+ const xmlChar *providerID,
+ const xmlChar *statusCodeValue);
-LASSO_EXPORT LassoNode *lasso_logout_response_new_from_dump (const xmlChar *buffer);
+LASSO_EXPORT LassoNode* lasso_logout_response_new_from_soap (const xmlChar *buffer);
#ifdef __cplusplus
}