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);

Add a service to the registry of service of this LassoServer object.

server :

a LassoServer

service :

a LassoNode object implementing representing a service endpoint.

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.