summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2009-03-27 15:05:45 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2009-03-27 15:05:45 +0000
commitc3b0ca25b8cd2bc7009d47fb7e9c949701808391 (patch)
treedfeead245359bf6900dd3eab6551c94848e9c7b1
parentf55ff8ea5e3f1387e101c1792200cc391f33bcae (diff)
XML SAML 2.0: add a build query to request base class
* lasso/xml/saml-2.0/samlp2_request_abstract.c: add a build query overloaded function to LassoSamlp2RequestAbstract class, the base class of all saml 2.0 request nodes.
-rw-r--r--lasso/xml/saml-2.0/samlp2_request_abstract.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/lasso/xml/saml-2.0/samlp2_request_abstract.c b/lasso/xml/saml-2.0/samlp2_request_abstract.c
index 5672d0a3..e500bbd6 100644
--- a/lasso/xml/saml-2.0/samlp2_request_abstract.c
+++ b/lasso/xml/saml-2.0/samlp2_request_abstract.c
@@ -91,7 +91,19 @@ static struct XmlSnippet schema_snippets[] = {
static LassoNodeClass *parent_class = NULL;
+static gchar*
+build_query(LassoNode *node)
+{
+ char *ret, *deflated_message;
+ deflated_message = lasso_node_build_deflated_query(node);
+ if (deflated_message == NULL) {
+ return NULL;
+ }
+ ret = g_strdup_printf("SAMLRequest=%s", deflated_message);
+ g_free(deflated_message);
+ return ret;
+}
static xmlNode*
get_xmlNode(LassoNode *node, gboolean lasso_dump)
@@ -142,6 +154,7 @@ class_init(LassoSamlp2RequestAbstractClass *klass)
LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
parent_class = g_type_class_peek_parent(klass);
+ nclass->build_query = build_query;
nclass->get_xmlNode = get_xmlNode;
nclass->node_data = g_new0(LassoNodeClassData, 1);
lasso_node_class_set_nodename(nclass, "RequestAbstract");