From da904e0bb3e7ffb9c4ca04008d4decc10c3d8a0e Mon Sep 17 00:00:00 2001 From: Frederic Peters Date: Wed, 15 Nov 2006 18:58:26 +0000 Subject: binding for SAML2 binding uri; and fixed SAML20 to SAML2 for coherence --- lasso/id-ff/provider.c | 2 +- lasso/saml-2.0/login.c | 6 +++--- lasso/saml-2.0/provider.c | 10 +++++----- lasso/xml/strings.h | 12 ++++++------ swig/Lasso-saml2.i | 15 +++++++++++++++ swig/saml-2.0/samlp2_authn_request.i | 3 +++ 6 files changed, 33 insertions(+), 15 deletions(-) diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c index bbe9693d..aab568ea 100644 --- a/lasso/id-ff/provider.c +++ b/lasso/id-ff/provider.c @@ -618,7 +618,7 @@ lasso_provider_load_metadata(LassoProvider *provider, const gchar *metadata) provider->metadata_filename = g_strdup(metadata); - if (strcmp((char*)node->ns->href, LASSO_SAML20_METADATA_HREF) == 0) { + if (strcmp((char*)node->ns->href, LASSO_SAML2_METADATA_HREF) == 0) { provider->private_data->conformance = LASSO_PROTOCOL_SAML_2_0; return lasso_saml20_provider_load_metadata(provider, node); } diff --git a/lasso/saml-2.0/login.c b/lasso/saml-2.0/login.c index f6f212c7..806332bb 100644 --- a/lasso/saml-2.0/login.c +++ b/lasso/saml-2.0/login.c @@ -245,11 +245,11 @@ lasso_saml20_login_process_authn_request_msg(LassoLogin *login, const char *auth } else if (strcmp(binding, "SOAP") == 0) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP; } - } else if (strcmp(protocol_binding, LASSO_SAML20_METADATA_BINDING_ARTIFACT) == 0) { + } else if (strcmp(protocol_binding, LASSO_SAML2_METADATA_BINDING_ARTIFACT) == 0) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART; - } else if (strcmp(protocol_binding, LASSO_SAML20_METADATA_BINDING_POST) == 0) { + } else if (strcmp(protocol_binding, LASSO_SAML2_METADATA_BINDING_POST) == 0) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST; - } else if (strcmp(protocol_binding, LASSO_SAML20_METADATA_BINDING_SOAP) == 0) { + } else if (strcmp(protocol_binding, LASSO_SAML2_METADATA_BINDING_SOAP) == 0) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP; } else { message(G_LOG_LEVEL_CRITICAL, diff --git a/lasso/saml-2.0/provider.c b/lasso/saml-2.0/provider.c index bb702017..ced8a9e2 100644 --- a/lasso/saml-2.0/provider.c +++ b/lasso/saml-2.0/provider.c @@ -71,15 +71,15 @@ load_descriptor(xmlNode *xmlnode, GHashTable *descriptor, LassoProvider *provide if (binding) { /* Endpoint type */ char *binding_s = NULL; - if (strcmp(binding, LASSO_SAML20_METADATA_BINDING_SOAP) == 0) { + if (strcmp(binding, LASSO_SAML2_METADATA_BINDING_SOAP) == 0) { binding_s = "SOAP"; - } else if (strcmp(binding, LASSO_SAML20_METADATA_BINDING_REDIRECT) == 0) { + } else if (strcmp(binding, LASSO_SAML2_METADATA_BINDING_REDIRECT) == 0) { binding_s = "HTTP-Redirect"; - } else if (strcmp(binding, LASSO_SAML20_METADATA_BINDING_POST) == 0) { + } else if (strcmp(binding, LASSO_SAML2_METADATA_BINDING_POST) == 0) { binding_s = "HTTP-POST"; - } else if (strcmp(binding, LASSO_SAML20_METADATA_BINDING_ARTIFACT) == 0) { + } else if (strcmp(binding, LASSO_SAML2_METADATA_BINDING_ARTIFACT) == 0) { binding_s = "HTTP-Artifact"; - } else if (strcmp(binding, LASSO_SAML20_METADATA_BINDING_PAOS) == 0) { + } else if (strcmp(binding, LASSO_SAML2_METADATA_BINDING_PAOS) == 0) { binding_s = "PAOS"; } else { message(G_LOG_LEVEL_CRITICAL, "XXX: unknown binding: %s", binding); diff --git a/lasso/xml/strings.h b/lasso/xml/strings.h index 22a4a5cb..39ba162b 100644 --- a/lasso/xml/strings.h +++ b/lasso/xml/strings.h @@ -328,13 +328,13 @@ /* SAML 2.0 */ /*****************************************************************************/ -#define LASSO_SAML20_METADATA_HREF "urn:oasis:names:tc:SAML:2.0:metadata" +#define LASSO_SAML2_METADATA_HREF "urn:oasis:names:tc:SAML:2.0:metadata" -#define LASSO_SAML20_METADATA_BINDING_SOAP "urn:oasis:names:tc:SAML:2.0:bindings:SOAP" -#define LASSO_SAML20_METADATA_BINDING_REDIRECT "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" -#define LASSO_SAML20_METADATA_BINDING_POST "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" -#define LASSO_SAML20_METADATA_BINDING_ARTIFACT "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" -#define LASSO_SAML20_METADATA_BINDING_PAOS "urn:oasis:names:tc:SAML:2.0:bindings:PAOS" +#define LASSO_SAML2_METADATA_BINDING_SOAP "urn:oasis:names:tc:SAML:2.0:bindings:SOAP" +#define LASSO_SAML2_METADATA_BINDING_REDIRECT "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" +#define LASSO_SAML2_METADATA_BINDING_POST "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" +#define LASSO_SAML2_METADATA_BINDING_ARTIFACT "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" +#define LASSO_SAML2_METADATA_BINDING_PAOS "urn:oasis:names:tc:SAML:2.0:bindings:PAOS" #define LASSO_SAML2_PROTOCOL_HREF "urn:oasis:names:tc:SAML:2.0:protocol" #define LASSO_SAML2_PROTOCOL_PREFIX "samlp" diff --git a/swig/Lasso-saml2.i b/swig/Lasso-saml2.i index e800aaad..517aa05d 100644 --- a/swig/Lasso-saml2.i +++ b/swig/Lasso-saml2.i @@ -20,6 +20,21 @@ gboolean lasso_profile_is_saml_query(char *query); #define LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT \ "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" +/* Protocol Bindings */ +#ifndef SWIGPHP4 +%rename(SAML2_METADATA_BINDING_SOAP) LASSO_SAML2_METADATA_BINDING_SOAP; +%rename(SAML2_METADATA_BINDING_REDIRECT) LASSO_SAML2_METADATA_BINDING_REDIRECT; +%rename(SAML2_METADATA_BINDING_POST) LASSO_SAML2_METADATA_BINDING_POST; +%rename(SAML2_METADATA_BINDING_ARTIFACT) LASSO_SAML2_METADATA_BINDING_ARTIFACT; +%rename(SAML2_METADATA_BINDING_PAOS) LASSO_SAML2_METADATA_BINDING_PAOS; +#endif +#define LASSO_SAML2_METADATA_BINDING_SOAP "urn:oasis:names:tc:SAML:2.0:bindings:SOAP" +#define LASSO_SAML2_METADATA_BINDING_REDIRECT "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" +#define LASSO_SAML2_METADATA_BINDING_POST "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" +#define LASSO_SAML2_METADATA_BINDING_ARTIFACT "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" +#define LASSO_SAML2_METADATA_BINDING_PAOS "urn:oasis:names:tc:SAML:2.0:bindings:PAOS" + + /* AuthnClassRef */ #ifndef SWIGPHP4 %rename(SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY) \ diff --git a/swig/saml-2.0/samlp2_authn_request.i b/swig/saml-2.0/samlp2_authn_request.i index a0b4193c..bc2b653a 100644 --- a/swig/saml-2.0/samlp2_authn_request.i +++ b/swig/saml-2.0/samlp2_authn_request.i @@ -11,6 +11,9 @@ typedef struct { %rename(isPassive) IsPassive; #endif gboolean IsPassive; +#ifndef SWIGPHP4 + %rename(protocolBinding) ProtocolBinding; +#endif char *ProtocolBinding; #ifndef SWIGPHP4 %rename(assertionConsumerServiceIndex) AssertionConsumerServiceIndex; -- cgit