diff options
author | Damien Laniel <dlaniel@entrouvert.com> | 2007-06-29 14:02:29 +0000 |
---|---|---|
committer | Damien Laniel <dlaniel@entrouvert.com> | 2007-06-29 14:02:29 +0000 |
commit | dfe7e09a7fe22041dd757fada3c554215b1d0ec9 (patch) | |
tree | 7dbdd5dd22831b53fb3ff3e1626afab261cd0ece /lasso | |
parent | d816d74c1ab629abbf733577b4e53fafb9c9d5f0 (diff) | |
download | lasso-dfe7e09a7fe22041dd757fada3c554215b1d0ec9.tar.gz lasso-dfe7e09a7fe22041dd757fada3c554215b1d0ec9.tar.xz lasso-dfe7e09a7fe22041dd757fada3c554215b1d0ec9.zip |
added initRedirectUserForConsent
Diffstat (limited to 'lasso')
-rw-r--r-- | lasso/id-wsf-2.0/data_service.c | 32 | ||||
-rw-r--r-- | lasso/id-wsf-2.0/data_service.h | 3 | ||||
-rw-r--r-- | lasso/xml/id-wsf-2.0/Makefile.am | 2 | ||||
-rw-r--r-- | lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.c | 119 | ||||
-rw-r--r-- | lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.h | 82 | ||||
-rw-r--r-- | lasso/xml/strings.h | 8 |
6 files changed, 245 insertions, 1 deletions
diff --git a/lasso/id-wsf-2.0/data_service.c b/lasso/id-wsf-2.0/data_service.c index 510bd2ae..9d6ec960 100644 --- a/lasso/id-wsf-2.0/data_service.c +++ b/lasso/id-wsf-2.0/data_service.c @@ -33,6 +33,9 @@ #include <lasso/xml/id-wsf-2.0/dstref_query_response.h> #include <lasso/xml/id-wsf-2.0/dstref_data.h> #include <lasso/xml/id-wsf-2.0/util_status.h> +#include <lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.h> + +#include <lasso/xml/soap_fault.h> struct _LassoIdWsf2DataServicePrivate { @@ -353,6 +356,35 @@ lasso_idwsf2_data_service_get_attribute_string(LassoIdWsf2DataService *service, return content; } +gint +lasso_idwsf2_data_service_init_redirect_user_for_consent(LassoIdWsf2DataService *service, + const gchar *redirect_url) +{ + LassoIdWsf2Profile *profile = LASSO_IDWSF2_PROFILE(service); + LassoSoapEnvelope *envelope; + LassoSoapFault *fault; + LassoSoapDetail *detail; + + g_return_val_if_fail(LASSO_IS_IDWSF2_DATA_SERVICE(service), + LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + g_return_val_if_fail(redirect_url != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); + + /* Build soap fault node */ + fault = lasso_soap_fault_new(); + fault->faultcode = g_strdup(LASSO_SOAP_FAULT_CODE_SERVER); + fault->faultstring = g_strdup(LASSO_SOAP_FAULT_STRING_SERVER); + detail = lasso_soap_detail_new(); + detail->any = g_list_append( + detail->any, lasso_idwsf2_soap_binding2_redirect_request_new_full(redirect_url)); + fault->Detail = detail; + + /* Response envelope */ + envelope = profile->soap_envelope_response; + envelope->Body->any = g_list_append(envelope->Body->any, fault); + + return 0; +} + /*****************************************************************************/ /* private methods */ /*****************************************************************************/ diff --git a/lasso/id-wsf-2.0/data_service.h b/lasso/id-wsf-2.0/data_service.h index d3a3f669..9553af83 100644 --- a/lasso/id-wsf-2.0/data_service.h +++ b/lasso/id-wsf-2.0/data_service.h @@ -92,6 +92,9 @@ LASSO_EXPORT xmlNode* lasso_idwsf2_data_service_get_attribute_node(LassoIdWsf2Da LASSO_EXPORT gchar* lasso_idwsf2_data_service_get_attribute_string(LassoIdWsf2DataService *service, const gchar *item_id); + +LASSO_EXPORT gint lasso_idwsf2_data_service_init_redirect_user_for_consent( + LassoIdWsf2DataService *service, const gchar *redirect_url); #ifdef __cplusplus } diff --git a/lasso/xml/id-wsf-2.0/Makefile.am b/lasso/xml/id-wsf-2.0/Makefile.am index 98a11404..ac43e59a 100644 --- a/lasso/xml/id-wsf-2.0/Makefile.am +++ b/lasso/xml/id-wsf-2.0/Makefile.am @@ -36,6 +36,7 @@ liblasso_xml_id_wsf2_la_SOURCES = \ dstref_sort.c \ sec_token.c \ soap_binding_framework.c \ + soap_binding2_redirect_request.c \ util_status.c \ util_response.c @@ -67,6 +68,7 @@ liblassoinclude_HEADERS = \ dstref_sort.h \ sec_token.h \ soap_binding_framework.h \ + soap_binding2_redirect_request.h \ util_status.h \ util_response.h diff --git a/lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.c b/lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.c new file mode 100644 index 00000000..5761f038 --- /dev/null +++ b/lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.c @@ -0,0 +1,119 @@ +/* $Id: soap_binding2_redirect_request.c,v 1.0 2005/10/14 15:17:55 fpeters Exp $ + * + * Lasso - A free implementation of the Liberty Alliance specifications. + * + * Copyright (C) 2004-2007 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: See AUTHORS file in top-level directory. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "soap_binding2_redirect_request.h" + +/* + * Schema fragment (liberty-idwsf-soap-binding-v2.0.xsd): + * + * <xs:complexType name="RedirectRequestType"> + * <xs:attribute name="redirectURL" type="xs:anyURI" use="required"/> + * </xs:complexType> + */ + +/*****************************************************************************/ +/* private methods */ +/*****************************************************************************/ + + +static struct XmlSnippet schema_snippets[] = { + { "redirectURL", SNIPPET_ATTRIBUTE, + G_STRUCT_OFFSET(LassoIdWsf2SoapBinding2RedirectRequest, redirectURL) }, + {NULL, 0, 0} +}; + +static LassoNodeClass *parent_class = NULL; + + +/*****************************************************************************/ +/* instance and class init functions */ +/*****************************************************************************/ + +static void +instance_init(LassoIdWsf2SoapBinding2RedirectRequest *node) +{ + node->redirectURL = NULL; +} + +static void +class_init(LassoIdWsf2SoapBinding2RedirectRequestClass *klass) +{ + LassoNodeClass *nclass = LASSO_NODE_CLASS(klass); + + parent_class = g_type_class_peek_parent(klass); + nclass->node_data = g_new0(LassoNodeClassData, 1); + lasso_node_class_set_nodename(nclass, "RedirectRequest"); + lasso_node_class_set_ns(nclass, LASSO_IDWSF2_SOAP_BINDING2_HREF, LASSO_IDWSF2_SOAP_BINDING2_PREFIX); + lasso_node_class_add_snippets(nclass, schema_snippets); +} + +GType +lasso_idwsf2_soap_binding2_redirect_request_get_type() +{ + static GType this_type = 0; + + if (!this_type) { + static const GTypeInfo this_info = { + sizeof (LassoIdWsf2SoapBinding2RedirectRequestClass), + NULL, + NULL, + (GClassInitFunc) class_init, + NULL, + NULL, + sizeof(LassoIdWsf2SoapBinding2RedirectRequest), + 0, + (GInstanceInitFunc) instance_init, + }; + + this_type = g_type_register_static(LASSO_TYPE_NODE, + "LassoIdWsf2SoapBinding2RedirectRequest", &this_info, 0); + } + return this_type; +} + +/** + * lasso_idwsf2_soap_binding2_redirect_request_new: + * + * Creates a new #LassoIdWsf2SoapBinding2RedirectRequest object. + * + * Return value: a newly created #LassoIdWsf2SoapBinding2RedirectRequest object + **/ +LassoNode* +lasso_idwsf2_soap_binding2_redirect_request_new() +{ + return g_object_new(LASSO_TYPE_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST, NULL); +} + +LassoNode* +lasso_idwsf2_soap_binding2_redirect_request_new_full(const gchar *redirect_url) +{ + LassoIdWsf2SoapBinding2RedirectRequest *request; + + request = LASSO_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST( + g_object_new(LASSO_TYPE_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST, NULL)); + request->redirectURL = g_strdup(redirect_url); + + return LASSO_NODE(request); +} + diff --git a/lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.h b/lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.h new file mode 100644 index 00000000..1623b657 --- /dev/null +++ b/lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.h @@ -0,0 +1,82 @@ +/* $Id: soap_binding2_redirect_request.h,v 1.0 2005/10/14 15:17:55 fpeters Exp $ + * + * Lasso - A free implementation of the Liberty Alliance specifications. + * + * Copyright (C) 2004-2007 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: See AUTHORS file in top-level directory. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LASSO_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST_H__ +#define __LASSO_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include <lasso/xml/xml.h> + +#define LASSO_TYPE_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST (lasso_idwsf2_soap_binding2_redirect_request_get_type()) +#define LASSO_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + LASSO_TYPE_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST, \ + LassoIdWsf2SoapBinding2RedirectRequest)) +#define LASSO_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + LASSO_TYPE_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST, \ + LassoIdWsf2SoapBinding2RedirectRequestClass)) +#define LASSO_IS_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + LASSO_TYPE_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST)) +#define LASSO_IS_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + LASSO_TYPE_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST)) +#define LASSO_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST_GET_CLASS(o) \ + (G_TYPE_INSTANCE_GET_CLASS ((o), \ + LASSO_TYPE_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST, \ + LassoIdWsf2SoapBinding2RedirectRequestClass)) + + +typedef struct _LassoIdWsf2SoapBinding2RedirectRequest LassoIdWsf2SoapBinding2RedirectRequest; +typedef struct _LassoIdWsf2SoapBinding2RedirectRequestClass LassoIdWsf2SoapBinding2RedirectRequestClass; + + +struct _LassoIdWsf2SoapBinding2RedirectRequest { + LassoNode parent; + + /*< public >*/ + /* attributes */ + char *redirectURL; +}; + + +struct _LassoIdWsf2SoapBinding2RedirectRequestClass { + LassoNodeClass parent; +}; + +LASSO_EXPORT GType lasso_idwsf2_soap_binding2_redirect_request_get_type(void); +LASSO_EXPORT LassoNode* lasso_idwsf2_soap_binding2_redirect_request_new(void); + +LASSO_EXPORT LassoNode* lasso_idwsf2_soap_binding2_redirect_request_new_full( + const gchar *redirect_url); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __LASSO_IDWSF2_SOAP_BINDING2_REDIRECT_REQUEST_H__ */ diff --git a/lasso/xml/strings.h b/lasso/xml/strings.h index ba533429..25c4aa74 100644 --- a/lasso/xml/strings.h +++ b/lasso/xml/strings.h @@ -514,9 +514,12 @@ #define LASSO_IDWSF2_SEC_HREF "urn:liberty:security:2006-08" #define LASSO_IDWSF2_SEC_PREFIX "sec" -#define LASSO_IDWSF2_SOAP_BINDING_HREF "urn:liberty:sb:2006-08" +#define LASSO_IDWSF2_SOAP_BINDING_HREF "urn:liberty:sb" #define LASSO_IDWSF2_SOAP_BINDING_PREFIX "sb" +#define LASSO_IDWSF2_SOAP_BINDING2_HREF "urn:liberty:sb:2006-08" +#define LASSO_IDWSF2_SOAP_BINDING2_PREFIX "sb2" + /*****************************************************************************/ /* Others */ /*****************************************************************************/ @@ -541,4 +544,7 @@ #define LASSO_SOAP_FAULT_CODE_SERVER "Server" +#define LASSO_SOAP_FAULT_STRING_SERVER "Server Error" + #endif /* __LASSO_STRINGS_H__ */ + |