diff options
| author | Valery Febvre <vfebvre at easter-eggs.com> | 2004-11-29 16:44:57 +0000 |
|---|---|---|
| committer | Valery Febvre <vfebvre at easter-eggs.com> | 2004-11-29 16:44:57 +0000 |
| commit | 30f3668d0d9386d519c141531fb34ddd58deebe1 (patch) | |
| tree | f0a95c9bc819440ebd564d251bbf30ef59eb64ff | |
| parent | 939697c22dab09ab3b29faef6de4d11112c6eb70 (diff) | |
Added LassoSamlAttribute, LassoSamlAttributeDesignator &
LassoSamlAttributeStatement classes
| -rw-r--r-- | lasso/xml/Makefile.am | 6 | ||||
| -rw-r--r-- | lasso/xml/saml_attribute.c | 129 | ||||
| -rw-r--r-- | lasso/xml/saml_attribute.h | 67 | ||||
| -rw-r--r-- | lasso/xml/saml_attribute_designator.c | 136 | ||||
| -rw-r--r-- | lasso/xml/saml_attribute_designator.h | 71 | ||||
| -rw-r--r-- | lasso/xml/saml_attribute_statement.c | 124 | ||||
| -rw-r--r-- | lasso/xml/saml_attribute_statement.h | 70 |
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__ */ |
