LassoSession

LassoSession — Principal Session

Synopsis

                    LassoSession;
LassoSession*       lasso_session_new                   (void);
LassoSession*       lasso_session_new_from_dump         (const gchar *dump);
gchar*              lasso_session_dump                  (LassoSession *session);
void                lasso_session_destroy               (LassoSession *session);
GList*              lasso_session_get_assertions        (LassoSession *session,
                                                         const char *provider_id);
LassoNode*          lasso_session_get_assertion         (LassoSession *session,
                                                         const gchar *providerID);
lasso_error_t       lasso_session_remove_assertion      (LassoSession *session,
                                                         const gchar *providerID);
lasso_error_t       lasso_session_add_assertion         (LassoSession *session,
                                                         const char *providerID,
                                                         LassoNode *assertion);
gchar*              lasso_session_get_provider_index    (LassoSession *session,
                                                         gint index);
gboolean            lasso_session_is_empty              (LassoSession *session);

Description

Details

LassoSession

typedef struct {
	LassoNode parent;

	/* Can actually contain LassoSamlAssertion or LassoSaml2Assertion */
	GHashTable *assertions; /* of LassoNode */
	gboolean is_dirty;
} LassoSession;

LassoSession stores the assertions received or emitted during the current session. It stores state for using profiles like LassoLogin or LassoLogout.

LassoNode parent;

GHashTable *assertions;

(element-type string LassoNode): a hashtable of LassoSamlAssertion or LassoSaml2Assertion, indexed by provider ids,

gboolean is_dirty;

whether this session object has been modified since its creation.

lasso_session_new ()

LassoSession*       lasso_session_new                   (void);

Creates a new LassoSession.

Returns :

a newly created LassoSession

lasso_session_new_from_dump ()

LassoSession*       lasso_session_new_from_dump         (const gchar *dump);

Restores the dump to a new LassoSession.

dump :

XML server dump

Returns :

a newly created LassoSession; or NULL if an error occured

lasso_session_dump ()

gchar*              lasso_session_dump                  (LassoSession *session);

Dumps session content to an XML string.

session :

a LassoSession

Returns :

the dump string. It must be freed by the caller.. transfer full.

lasso_session_destroy ()

void                lasso_session_destroy               (LassoSession *session);

Destroys a session.

session :

a LassoSession

lasso_session_get_assertions ()

GList*              lasso_session_get_assertions        (LassoSession *session,
                                                         const char *provider_id);

Gets the assertions for the given provider_id.

session :

a LassoSession

provider_id :

the provider ID

Returns :

a list of LassoSamlAssertion.. allow-none. transfer container. element-type LassoNode.

lasso_session_get_assertion ()

LassoNode*          lasso_session_get_assertion         (LassoSession *session,
                                                         const gchar *providerID);

Gets the assertion for the given providerID.

session :

a LassoSession

providerID :

the provider ID

Returns :

transfer none)(allow-none. transfer none. allow-none none.

lasso_session_remove_assertion ()

lasso_error_t       lasso_session_remove_assertion      (LassoSession *session,
                                                         const gchar *providerID);

Removes assertion for providerID from session.

session :

a LassoSession

providerID :

the provider ID

Returns :

0 on success; or a negative value otherwise.

lasso_session_add_assertion ()

lasso_error_t       lasso_session_add_assertion         (LassoSession *session,
                                                         const char *providerID,
                                                         LassoNode *assertion);

Adds assertion to the principal session. This function also add the assertion to the index by assertionID.

session :

a LassoSession

providerID :

the provider ID

assertion :

the assertion

Returns :

0 on success; or a negative value otherwise.

lasso_session_get_provider_index ()

gchar*              lasso_session_get_provider_index    (LassoSession *session,
                                                         gint index);

Looks up and returns the nth provider id.

session :

a LassoSession

index :

index of requested provider

Returns :

transfer full)(allow-none. transfer full. allow-none full.

lasso_session_is_empty ()

gboolean            lasso_session_is_empty              (LassoSession *session);

Returns TRUE if session is empty.

session :

a LassoSession

Returns :

TRUE if empty