diff options
author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-08-23 14:43:36 +0000 |
---|---|---|
committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-08-23 14:43:36 +0000 |
commit | 492c9bb02bbf6cd4fdebe76dafb4ac68077f04c5 (patch) | |
tree | c0b18fea67519fd1a213e384cf73719246b98f77 /lasso | |
parent | 579eae8b88803cf98f67c3f54f507d53a31c0a8f (diff) | |
download | lasso-492c9bb02bbf6cd4fdebe76dafb4ac68077f04c5.tar.gz lasso-492c9bb02bbf6cd4fdebe76dafb4ac68077f04c5.tar.xz lasso-492c9bb02bbf6cd4fdebe76dafb4ac68077f04c5.zip |
*** empty log message ***
Diffstat (limited to 'lasso')
-rw-r--r-- | lasso/Attic/protocols/logout_request.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/lasso/Attic/protocols/logout_request.c b/lasso/Attic/protocols/logout_request.c index ef1af151..577f7dd5 100644 --- a/lasso/Attic/protocols/logout_request.c +++ b/lasso/Attic/protocols/logout_request.c @@ -76,15 +76,23 @@ lasso_logout_request_new(gchar *providerID, lassoSignatureType sign_type, lassoSignatureMethod sign_method) { + LassoNodeClass *class; LassoNode *request, *identifier; - xmlChar *id, *time; + xmlChar *request_id, *time; + + xmlDocPtr doc = NULL; + xmlNodePtr xmlNode = NULL; + xmlIDPtr id; + xmlAttrPtr id_attr; + xmlChar *id_value; + request = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_REQUEST, NULL)); /* RequestID */ - id = lasso_build_unique_id(32); + request_id = lasso_build_unique_id(32); lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request), - (const xmlChar *)id); + (const xmlChar *)request_id); /* MajorVersion */ lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request), lassoLibMajorVersion); @@ -97,15 +105,26 @@ lasso_logout_request_new(gchar *providerID, (const xmlChar *)time); xmlFree(time); + class = LASSO_NODE_GET_CLASS(request); + + doc = xmlNewDoc("1.0"); + xmlNode = class->get_xmlNode(request); + id_attr = lasso_node_get_attr(request, "RequestID", NULL); + if (id_attr != NULL) { + id_value = xmlNodeListGetString(doc, id_attr->children, 1); + id = xmlAddID(NULL, doc, id_value, id_attr); + xmlFree(id_value); + } + /* set the signature template */ if (sign_type != lassoSignatureTypeNone) { lasso_samlp_request_abstract_set_signature_tmpl(LASSO_SAMLP_REQUEST_ABSTRACT(request), sign_type, sign_method, - id); + NULL); } - xmlFree(id); + xmlFree(request_id); /* ProviderID */ lasso_lib_logout_request_set_providerID(LASSO_LIB_LOGOUT_REQUEST(request), |