summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValery Febvre <vfebvre at easter-eggs.com>2004-11-29 16:44:57 +0000
committerValery Febvre <vfebvre at easter-eggs.com>2004-11-29 16:44:57 +0000
commit30f3668d0d9386d519c141531fb34ddd58deebe1 (patch)
treef0a95c9bc819440ebd564d251bbf30ef59eb64ff
parent939697c22dab09ab3b29faef6de4d11112c6eb70 (diff)
Added LassoSamlAttribute, LassoSamlAttributeDesignator &
LassoSamlAttributeStatement classes
-rw-r--r--lasso/xml/Makefile.am6
-rw-r--r--lasso/xml/saml_attribute.c129
-rw-r--r--lasso/xml/saml_attribute.h67
-rw-r--r--lasso/xml/saml_attribute_designator.c136
-rw-r--r--lasso/xml/saml_attribute_designator.h71
-rw-r--r--lasso/xml/saml_attribute_statement.c124
-rw-r--r--lasso/xml/saml_attribute_statement.h70
7 files changed, 603 insertions, 0 deletions
diff --git a/lasso/xml/Makefile.am b/lasso/xml/Makefile.am
index cc4e2cda..9ab7154f 100644
--- a/lasso/xml/Makefile.am
+++ b/lasso/xml/Makefile.am
@@ -45,6 +45,9 @@ liblasso_xml_la_SOURCES = \
lib_subject.c \
saml_advice.c \
saml_assertion.c \
+ saml_attribute.c \
+ saml_attribute_designator.c \
+ saml_attribute_statement.c \
saml_audience_restriction_condition.c \
saml_authentication_statement.c \
saml_authority_binding.c \
@@ -100,6 +103,9 @@ liblassoinclude_HEADERS = \
lib_subject.h \
saml_advice.h \
saml_assertion.h \
+ saml_attribute.h \
+ saml_attribute_designator.h \
+ saml_attribute_statement.h \
saml_audience_restriction_condition.h \
saml_authentication_statement.h \
saml_authority_binding.h \
diff --git a/lasso/xml/saml_attribute.c b/lasso/xml/saml_attribute.c
new file mode 100644
index 00000000..449d3928
--- /dev/null
+++ b/lasso/xml/saml_attribute.c
@@ -0,0 +1,129 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * 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 <lasso/xml/saml_attribute.h>
+
+/*
+ * The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd):
+ *
+ * <element name="Attribute" type="saml:AttributeType"/>
+ * <complexType name="AttributeType">
+ * <complexContent>
+ * <extension base="saml:AttributeDesignatorType">
+ * <sequence>
+ * <element ref="saml:AttributeValue" maxOccurs="unbounded"/>
+ * </sequence>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ *
+ * <element name="AttributeValue" type="anyType"/>
+ *
+ * <xs:complexType name="anyType" mixed="true">
+ * <xs:annotation>
+ * <xs:documentation>
+ * Not the real urType, but as close an approximation as we can
+ * get in the XML representation</xs:documentation>
+ * </xs:annotation>
+ * <xs:sequence>
+ * <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+ * </xs:sequence>
+ * <xs:anyAttribute processContents="lax"/>
+ * </xs:complexType>
+ */
+
+/*****************************************************************************/
+/* private methods */
+/*****************************************************************************/
+
+#define snippets() \
+ LassoSamlAttribute *attribute = LASSO_SAML_ATTRIBUTE(node); \
+ struct XmlSnippet snippets[] = { \
+ { "AttributeValue", SNIPPET_LIST_NODES, (void**)&(attribute->AttributeValue) }, \
+ { NULL, 0, NULL} \
+ };
+
+static LassoNodeClass *parent_class = NULL;
+
+static xmlNode*
+get_xmlNode(LassoNode *node)
+{
+ xmlNode *xmlnode;
+ snippets();
+
+ xmlnode = parent_class->get_xmlNode(node);
+ xmlNodeSetName(xmlnode, "Attribute");
+ build_xml_with_snippets(xmlnode, snippets);
+
+ return xmlnode;
+}
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+instance_init(LassoSamlAttribute *node)
+{
+ node->AttributeValue = NULL;
+}
+
+static void
+class_init(LassoSamlAttributeClass *klass)
+{
+ parent_class = g_type_class_peek_parent(klass);
+ LASSO_NODE_CLASS(klass)->get_xmlNode = get_xmlNode;
+}
+
+GType
+lasso_saml_attribute_get_type()
+{
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoSamlAttributeClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) class_init,
+ NULL,
+ NULL,
+ sizeof(LassoSamlAttribute),
+ 0,
+ (GInstanceInitFunc) instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_SAML_ATTRIBUTE_DESIGNATOR,
+ "LassoSamlAttribute", &this_info, 0);
+ }
+ return this_type;
+}
+
+LassoNode*
+lasso_saml_attribute_new()
+{
+ return g_object_new(LASSO_TYPE_SAML_ATTRIBUTE, NULL);
+}
+
diff --git a/lasso/xml/saml_attribute.h b/lasso/xml/saml_attribute.h
new file mode 100644
index 00000000..a4040f58
--- /dev/null
+++ b/lasso/xml/saml_attribute.h
@@ -0,0 +1,67 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * 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_SAML_REQUEST_H__
+#define __LASSO_SAML_REQUEST_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/saml_attribute_designator.h>
+
+#define LASSO_TYPE_SAML_ATTRIBUTE (lasso_saml_attribute_get_type())
+#define LASSO_SAML_ATTRIBUTE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_SAML_ATTRIBUTE, LassoSamlAttribute))
+#define LASSO_SAML_ATTRIBUTE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_SAML_ATTRIBUTE, LassoSamlAttributeClass))
+#define LASSO_IS_SAML_ATTRIBUTE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_SAML_ATTRIBUTE))
+#define LASSO_IS_SAML_ATTRIBUTE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_SAML_ATTRIBUTE))
+#define LASSO_SAML_ATTRIBUTE_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_SAML_ATTRIBUTE, LassoSamlAttributeClass))
+
+typedef struct _LassoSamlAttribute LassoSamlAttribute;
+typedef struct _LassoSamlAttributeClass LassoSamlAttributeClass;
+
+struct _LassoSamlAttribute {
+ LassoSamlAttributeDesignator parent;
+
+ GList *AttributeValue;
+};
+
+struct _LassoSamlAttributeClass {
+ LassoSamlAttributeDesignatorClass parent;
+};
+
+LASSO_EXPORT GType lasso_saml_attribute_get_type(void);
+LASSO_EXPORT LassoNode* lasso_saml_attribute_new(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_SAML_ATTRIBUTE_H__ */
diff --git a/lasso/xml/saml_attribute_designator.c b/lasso/xml/saml_attribute_designator.c
new file mode 100644
index 00000000..14d27891
--- /dev/null
+++ b/lasso/xml/saml_attribute_designator.c
@@ -0,0 +1,136 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Samlerty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * 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 <lasso/xml/saml_attribute_designator.h>
+
+/*
+ * The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd):
+ *
+ * <element name="AttributeDesignator" type="saml:AttributeDesignatorType"/>
+ * <complexType name="AttributeDesignatorType">
+ * <attribute name="AttributeName" type="string" use="required"/>
+ * <attribute name="AttributeNamespace" type="anyURI" use="required"/>
+ * </complexType>
+ */
+
+/*****************************************************************************/
+/* private methods */
+/*****************************************************************************/
+
+#define snippets() \
+ LassoSamlAttributeDesignator *designator = \
+ LASSO_SAML_ATTRIBUTE_DESIGNATOR(node); \
+ struct XmlSnippet snippets[] = { \
+ { "AttributeName", SNIPPET_ATTRIBUTE, (void**)&(designator->AttributeName) }, \
+ { "AttributeNamespace", SNIPPET_ATTRIBUTE, \
+ (void**)&(designator->AttributeNamespace) }, \
+ { NULL, 0, NULL} \
+ };
+
+static LassoNodeClass *parent_class = NULL;
+
+static xmlNode*
+get_xmlNode(LassoNode *node)
+{
+ xmlNode *xmlnode;
+ snippets();
+
+ xmlnode = xmlNewNode(NULL, "AttributeDesignator");
+ xmlSetNs(xmlnode, xmlNewNs(xmlnode,
+ LASSO_SAML_ASSERTION_HREF, LASSO_SAML_ASSERTION_PREFIX));
+ build_xml_with_snippets(xmlnode, snippets);
+
+ return xmlnode;
+}
+
+static int
+init_from_xml(LassoNode *node, xmlNode *xmlnode)
+{
+ snippets();
+
+ if (parent_class->init_from_xml(node, xmlnode)) {
+ return -1;
+ }
+
+ init_xml_with_snippets(xmlnode, snippets);
+
+ return 0;
+}
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+instance_init(LassoSamlAttributeDesignator *node)
+{
+ node->AttributeName = NULL;
+ node->AttributeNamespace = NULL;
+}
+
+static void
+class_init(LassoSamlAttributeDesignatorClass *klass)
+{
+ parent_class = g_type_class_peek_parent(klass);
+ LASSO_NODE_CLASS(klass)->get_xmlNode = get_xmlNode;
+}
+
+GType
+lasso_saml_attribute_designator_get_type()
+{
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoSamlAttributeDesignatorClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) class_init,
+ NULL,
+ NULL,
+ sizeof(LassoSamlAttributeDesignator),
+ 0,
+ (GInstanceInitFunc) instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_NODE,
+ "LassoSamlAttributeDesignator", &this_info, 0);
+ }
+ return this_type;
+}
+
+/**
+ * lasso_saml_attribute_designator_new:
+ *
+ * Creates a new <saml:AttributeDesignator> node object.
+ *
+ * Return value: the new @LassoSamlAttributeDesignator
+ **/
+LassoNode*
+lasso_saml_attribute_designator_new()
+{
+ return g_object_new(LASSO_TYPE_SAML_ATTRIBUTE_DESIGNATOR, NULL);
+}
+
diff --git a/lasso/xml/saml_attribute_designator.h b/lasso/xml/saml_attribute_designator.h
new file mode 100644
index 00000000..ab0106fb
--- /dev/null
+++ b/lasso/xml/saml_attribute_designator.h
@@ -0,0 +1,71 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * 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_SAML_ATTRIBUTE_DESIGNATOR_H__
+#define __LASSO_SAML_ATTRIBUTE_DESIGNATOR_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/xml.h>
+
+#define LASSO_TYPE_SAML_ATTRIBUTE_DESIGNATOR (lasso_saml_attribute_designator_get_type())
+#define LASSO_SAML_ATTRIBUTE_DESIGNATOR(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_SAML_ATTRIBUTE_DESIGNATOR, \
+ LassoSamlAttributeDesignator))
+#define LASSO_SAML_ATTRIBUTE_DESIGNATOR_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_SAML_ATTRIBUTE_DESIGNATOR, \
+ LassoSamlAttributeDesignatorClass))
+#define LASSO_IS_SAML_ATTRIBUTE_DESIGNATOR(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_SAML_ATTRIBUTE_DESIGNATOR))
+#define LASSO_IS_SAML_ATTRIBUTE_DESIGNATOR_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_SAML_ATTRIBUTE_DESIGNATOR))
+#define LASSO_SAML_ATTRIBUTE_DESIGNATOR_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_SAML_ATTRIBUTE_DESIGNATOR, \
+ LassoSamlAttributeDesignatorClass))
+
+typedef struct _LassoSamlAttributeDesignator LassoSamlAttributeDesignator;
+typedef struct _LassoSamlAttributeDesignatorClass LassoSamlAttributeDesignatorClass;
+
+struct _LassoSamlAttributeDesignator {
+ LassoNode parent;
+
+ char *AttributeName;
+ char *AttributeNamespace;
+};
+
+struct _LassoSamlAttributeDesignatorClass {
+ LassoNodeClass parent;
+};
+
+LASSO_EXPORT GType lasso_saml_attribute_designator_get_type(void);
+LASSO_EXPORT LassoNode* lasso_saml_attribute_designator_new(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_SAML_ATTRIBUTE_DESIGNATOR_H__ */
diff --git a/lasso/xml/saml_attribute_statement.c b/lasso/xml/saml_attribute_statement.c
new file mode 100644
index 00000000..bf933674
--- /dev/null
+++ b/lasso/xml/saml_attribute_statement.c
@@ -0,0 +1,124 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Samlerty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * 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 <lasso/xml/saml_attribute_statement.h>
+
+/*
+ * The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd):
+ *
+ * <element name="AttributeStatement" type="saml:AttributeStatementType"/>
+ * <complexType name="AttributeStatementType">
+ * <complexContent>
+ * <extension base="saml:SubjectStatementAbstractType">
+ * <sequence>
+ * <element ref="saml:Attribute" maxOccurs="unbounded"/>
+ * </sequence>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ */
+
+/*****************************************************************************/
+/* private methods */
+/*****************************************************************************/
+
+#define snippets() \
+ LassoSamlAttributeStatement *statement = \
+ LASSO_SAML_ATTRIBUTE_STATEMENT(node); \
+ struct XmlSnippet snippets[] = { \
+ { "Attribute", SNIPPET_LIST_NODES, (void**)&(statement->Attribute) }, \
+ { NULL, 0, NULL} \
+ };
+
+static LassoNodeClass *parent_class = NULL;
+
+static xmlNode*
+get_xmlNode(LassoNode *node)
+{
+ xmlNode *xmlnode;
+ snippets();
+
+ xmlnode = parent_class->get_xmlNode(node);
+ xmlNodeSetName(xmlnode, "AttributeStatement");
+ build_xml_with_snippets(xmlnode, snippets);
+
+ return xmlnode;
+}
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+instance_init(LassoSamlAttributeStatement *node)
+{
+ node->Attribute = NULL;
+}
+
+static void
+class_init(LassoSamlAttributeStatementClass *klass)
+{
+ parent_class = g_type_class_peek_parent(klass);
+ LASSO_NODE_CLASS(klass)->get_xmlNode = get_xmlNode;
+}
+
+GType
+lasso_saml_attribute_statement_get_type()
+{
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoSamlAttributeStatementClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) class_init,
+ NULL,
+ NULL,
+ sizeof(LassoSamlAttributeStatement),
+ 0,
+ (GInstanceInitFunc) instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_SAML_SUBJECT_STATEMENT_ABSTRACT,
+ "LassoSamlAttributeStatement",
+ &this_info, 0);
+ }
+ return this_type;
+}
+
+/**
+ * lasso_saml_attribute_statement_new:
+ *
+ * Creates a new <saml:AttributeStatement> node object.
+ *
+ * Return value: the new @LassoSamlAttributeStatement
+ **/
+LassoNode*
+lasso_saml_attribute_statement_new()
+{
+ return g_object_new(LASSO_TYPE_SAML_ATTRIBUTE_STATEMENT, NULL);
+}
+
diff --git a/lasso/xml/saml_attribute_statement.h b/lasso/xml/saml_attribute_statement.h
new file mode 100644
index 00000000..b2155443
--- /dev/null
+++ b/lasso/xml/saml_attribute_statement.h
@@ -0,0 +1,70 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * 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_SAML_ATTRIBUTE_STATEMENT_H__
+#define __LASSO_SAML_ATTRIBUTE_STATEMENT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/saml_subject_statement_abstract.h>
+
+#define LASSO_TYPE_SAML_ATTRIBUTE_STATEMENT (lasso_saml_attribute_statement_get_type())
+#define LASSO_SAML_ATTRIBUTE_STATEMENT(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_SAML_ATTRIBUTE_STATEMENT, \
+ LassoSamlAttributeStatement))
+#define LASSO_SAML_ATTRIBUTE_STATEMENT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_SAML_ATTRIBUTE_STATEMENT, \
+ LassoSamlAttributeStatementClass))
+#define LASSO_IS_SAML_ATTRIBUTE_STATEMENT(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_SAML_ATTRIBUTE_STATEMENT))
+#define LASSO_IS_SAML_ATTRIBUTE_STATEMENT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_SAML_ATTRIBUTE_STATEMENT))
+#define LASSO_SAML_ATTRIBUTE_STATEMENT_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_SAML_ATTRIBUTE_STATEMENT, \
+ LassoSamlAttributeStatementClass))
+
+typedef struct _LassoSamlAttributeStatement LassoSamlAttributeStatement;
+typedef struct _LassoSamlAttributeStatementClass LassoSamlAttributeStatementClass;
+
+struct _LassoSamlAttributeStatement {
+ LassoSamlSubjectStatementAbstract parent;
+
+ GList *Attribute;
+};
+
+struct _LassoSamlAttributeStatementClass {
+ LassoSamlSubjectStatementAbstractClass parent;
+};
+
+LASSO_EXPORT GType lasso_saml_attribute_statement_get_type(void);
+LASSO_EXPORT LassoNode* lasso_saml_attribute_statement_new(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_SAML_ATTRIBUTE_STATEMENT_H__ */