summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2008-10-13 11:44:11 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2008-10-13 11:44:11 +0000
commit4b007b73e1d7bec23dfb234e733c1f7d6cdc87c8 (patch)
tree3c85b91de2f6f41bd0a3bc3b3e872568f234eb43
parent2bcf34e0dfa13e6066e98de8b7fd4074a5ebbdfd (diff)
Integrate modification from Olav Morken <olavmo@stud.ntnu.no>
It fixes bad url encoding of relaystates for logout profile. A better fix for all profiles is coming.
-rw-r--r--lasso/xml/saml-2.0/samlp2_logout_response.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lasso/xml/saml-2.0/samlp2_logout_response.c b/lasso/xml/saml-2.0/samlp2_logout_response.c
index 75ca35c9..3a9b90a8 100644
--- a/lasso/xml/saml-2.0/samlp2_logout_response.c
+++ b/lasso/xml/saml-2.0/samlp2_logout_response.c
@@ -22,6 +22,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
+#include <libxml/uri.h>
+
#include "samlp2_logout_response.h"
/**
@@ -51,7 +54,7 @@ static LassoNodeClass *parent_class = NULL;
static gchar*
build_query(LassoNode *node)
{
- char *ret, *deflated_message;
+ char *ret, *deflated_message, *relay_state;
LassoSamlp2LogoutResponse *response = LASSO_SAMLP2_LOGOUT_RESPONSE(node);
deflated_message = lasso_node_build_deflated_query(node);
@@ -59,8 +62,10 @@ build_query(LassoNode *node)
return NULL;
}
if (response->relayState) {
+ relay_state = (char*)xmlURIEscapeStr((xmlChar *)response->relayState, NULL);
ret = g_strdup_printf("SAMLResponse=%s&RelayState=%s",
- deflated_message, response->relayState);
+ deflated_message, relay_state);
+ xmlFree(relay_state);
} else {
ret = g_strdup_printf("SAMLResponse=%s", deflated_message);
}