LassoServer

LassoServer — Representation of the current server

Synopsis


#include <lasso/lasso.h>

                    LassoServer;
LassoServer*        lasso_server_new                    (const gchar *metadata,
                                                         const gchar *private_key,
                                                         const gchar *private_key_password,
                                                         const gchar *certificate);
LassoServer*        lasso_server_new_from_dump          (const gchar *dump);
gint                lasso_server_add_provider           (LassoServer *server,
                                                         LassoProviderRole role,
                                                         const gchar *metadata,
                                                         const gchar *public_key,
                                                         const gchar *ca_cert_chain);
gint                lasso_server_add_service            (LassoServer *server,
                                                         LassoNode *service);
void                lasso_server_destroy                (LassoServer *server);
gchar*              lasso_server_dump                   (LassoServer *server);
LassoProvider*      lasso_server_get_provider           (LassoServer *server,
                                                         const gchar *providerID);
LassoDiscoServiceInstance* lasso_server_get_service     (LassoServer *server,
                                                         const gchar *serviceType);

Object Hierarchy

  GObject
   +----LassoNode
         +----LassoProvider
               +----LassoServer

Description

It holds the data about a provider, other providers it knows, which certificates to use, etc.

Details

LassoServer

typedef struct {
	GHashTable *providers; /* of LassoProvider */
	/* Can actually contain LassoDataService or LassoIdWsf2DataService or any subclass */
	GHashTable *services; /* of LassoDataService */

	gchar *private_key;
	gchar *private_key_password;
	gchar *certificate;
	LassoSignatureMethod signature_method;
} LassoServer;


lasso_server_new ()

LassoServer*        lasso_server_new                    (const gchar *metadata,
                                                         const gchar *private_key,
                                                         const gchar *private_key_password,
                                                         const gchar *certificate);

Creates a new LassoServer.

metadata : path to the provider metadata file or NULL, for a LECP server
private_key : path to the the server private key file or NULL
private_key_password : password to private key if it is encrypted, or NULL
certificate : path to the server certificate file, or NULL
Returns : a newly created LassoServer object; or NULL if an error occured

lasso_server_new_from_dump ()

LassoServer*        lasso_server_new_from_dump          (const gchar *dump);

Restores the dump to a new LassoServer.

dump : XML server dump
Returns : a newly created LassoServer; or NULL if an error occured

lasso_server_add_provider ()

gint                lasso_server_add_provider           (LassoServer *server,
                                                         LassoProviderRole role,
                                                         const gchar *metadata,
                                                         const gchar *public_key,
                                                         const gchar *ca_cert_chain);

Creates a new LassoProvider and makes it known to the server

server : a LassoServer
role : provider role, identity provider or service provider
metadata : path to the provider metadata file
public_key : provider public key file (may be a certificate) or NULL
ca_cert_chain : provider CA certificate chain file or NULL
Returns : 0 on success; a negative value if an error occured.

lasso_server_add_service ()

gint                lasso_server_add_service            (LassoServer *server,
                                                         LassoNode *service);

...

server : a LassoServer
service :
Returns : 0 on success; a negative value if an error occured.

lasso_server_destroy ()

void                lasso_server_destroy                (LassoServer *server);

Destroys a server.

server : a LassoServer

lasso_server_dump ()

gchar*              lasso_server_dump                   (LassoServer *server);

Dumps server content to an XML string.

server : a LassoServer
Returns : the dump string. It must be freed by the caller.

lasso_server_get_provider ()

LassoProvider*      lasso_server_get_provider           (LassoServer *server,
                                                         const gchar *providerID);

Looks up for a LassoProvider whose ID is providerID and returns it.

server : a LassoServer
providerID : the provider ID
Returns : the LassoProvider, NULL if it was not found. The LassoProvider is owned by Lasso and should not be freed.

lasso_server_get_service ()

LassoDiscoServiceInstance* lasso_server_get_service     (LassoServer *server,
                                                         const gchar *serviceType);

...

server : a LassoServer
serviceType :
Returns : the LassoDiscoServiceInstance, NULL if it was not found. The LassoDiscoServiceInstance is owned by Lasso and should not be freed.