Top |
enum | LassoMessageFormat |
enum | LassoSignatureType |
enum | LassoSignatureMethod |
LassoNodeClassData | |
struct | LassoNode |
LassoNode is the base class for Lasso objects; just a step over GObject as defined in glib.
LassoNode *
lasso_node_new_from_dump (const char *dump
);
Restores the dump
to a new LassoNode subclass.
LassoNode *
lasso_node_new_from_soap (const char *soap
);
Parses SOAP message and creates a new Lasso object with the right class.
LassoNode *
lasso_node_new_from_xmlNode (xmlNode *node
);
Builds a new LassoNode from an xmlNode.
void
lasso_node_cleanup_original_xmlnodes (LassoNode *node
);
node
: a LassoNode
Traverse the LassoNode tree starting at Node and remove keeped xmlNode if one is found.
char *
lasso_node_dump (LassoNode *node
);
Dumps node
. All datas in object are dumped in an XML format.
char * lasso_node_debug (LassoNode *node
,int level
);
Create a debug dump for node
, it is pretty printed so any contained signature will be
uncheckable.
char *
lasso_node_export_to_base64 (LassoNode *node
);
Exports node
to a base64-encoded message.
char * lasso_node_export_to_query (LassoNode *node
,LassoSignatureMethod sign_method
,const char *private_key_file
);
Exports node
to a HTTP query string. If private_key_file
is NULL,
query won't be signed.
char * lasso_node_export_to_query_with_password (LassoNode *node
,LassoSignatureMethod sign_method
,const char *private_key_file
,const char *private_key_file_password
);
Exports node
to a HTTP query string. If private_key_file
is NULL,
query won't be signed.
char *
lasso_node_export_to_soap (LassoNode *node
);
Exports node
to a SOAP message.
char * lasso_node_export_to_soap_with_headers (LassoNode *node
,GList *headers
);
Exports node
to a SOAP message. The node
becomes the SOAP body.
each header in the headers list is added to the SOAP header if non-NULL.
headers
is permitted to be an empty list (e.g. NULL).
Example 1. Create SOAP envelope with variable number of header nodes
You need to form a SOAP message with authn_request as the body and paos_request, ecp_request and ecp_relaystate as SOAP header elements. It is possible one or more of these may be NULL and should be skipped.
char *text = NULL; LassoNode *paos_request = NULL; LassoNode *ecp_request = NULL; LassoNode *ecp_relaystate = NULL; GList *headers = NULL; paos_request = lasso_paos_request_new(responseConsumerURL, message_id); ecp_request = lasso_ecp_request_new(issuer, is_passive, provider_name, idp_list); lasso_list_add_new_gobject(headers, paos_request); lasso_list_add_new_gobject(headers, ecp_request); lasso_list_add_new_gobject(headers, ecp_relaystate); text = lasso_node_export_to_soap_with_headers(node, headers); lasso_release_list_of_gobjects(headers);
gchar *
lasso_node_export_to_xml (LassoNode *node
);
Exports node
to an xml message.
char * lasso_node_export_to_paos_request (LassoNode *node
,const char *issuer
,const char *responseConsumerURL
,const char *relay_state
);
Exports node
to a PAOS message.
Deprecated, use lasso_node_export_to_paos_request_full()
instead
char * lasso_node_export_to_paos_request_full (LassoNode *node
,const char *issuer
,const char *responseConsumerURL
,const char *message_id
,const char *relay_state
,gboolean is_passive
,gchar *provider_name
,LassoSamlp2IDPList *idp_list
);
Creates a new SOAP message. The SOAP headers include a PaosRequst,
a EcpRequest and optionally a EcpRelayState. The SOAP body contains
the node
parameters.
char * lasso_node_export_to_ecp_soap_response (LassoNode *node
,const char *assertionConsumerURL
);
Exports node
to a ECP SOAP message.
xmlNode * lasso_node_get_xmlNode (LassoNode *node
,gboolean lasso_dump
);
Builds an XML representation of node
.
const char *
lasso_node_get_name (LassoNode *node
);
Return the XML element name for this object, the one that would be used in the XML dump of this object.
xmlNode *
lasso_node_get_original_xmlnode (LassoNode *node
);
Retrieve the original xmlNode eventually associated to this LassoNode.
void lasso_node_set_original_xmlnode (LassoNode *node
,xmlNode *xmlnode
);
Set the underlying XML representation of the object.
void lasso_node_set_custom_namespace (LassoNode *node
,const char *prefix
,const char *href
);
Set a custom namespace for an object instance, use it with object existing a lot of revision of the nearly same namespace.
node |
a LassoNode object |
|
prefix |
the prefix to use for the definition |
|
href |
the URI of the namespace |
void lasso_node_set_custom_nodename (LassoNode *node
,const char *nodename
);
Set a custom nodename for an object instance, use it with object implement a schema type and not a real element.
LassoMessageFormat lasso_node_init_from_message (LassoNode *node
,const char *message
);
Parses message
and initialiazes node
fields with data from it. Message
type may be base64, SOAP, XML or query string, correct type is found
automatically.
gboolean lasso_node_init_from_query (LassoNode *node
,const char *query
);
Initialiazes node
fields with data from query
string.
lasso_error_t lasso_node_init_from_xml (LassoNode *node
,xmlNode *xmlnode
);
Initialiazes node
fields with data from xmlnode
XML node.
Return code for lasso_node_init_from_message; it describes the type of the message that was passed to that function.
Signature method.