summaryrefslogtreecommitdiffstats
path: root/lasso
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2007-06-29 14:02:29 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2007-06-29 14:02:29 +0000
commitdfe7e09a7fe22041dd757fada3c554215b1d0ec9 (patch)
tree7dbdd5dd22831b53fb3ff3e1626afab261cd0ece /lasso
parentd816d74c1ab629abbf733577b4e53fafb9c9d5f0 (diff)
downloadlasso-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.c32
-rw-r--r--lasso/id-wsf-2.0/data_service.h3
-rw-r--r--lasso/xml/id-wsf-2.0/Makefile.am2
-rw-r--r--lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.c119
-rw-r--r--lasso/xml/id-wsf-2.0/soap_binding2_redirect_request.h82
-rw-r--r--lasso/xml/strings.h8
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__ */
+