LassoProfile

LassoProfile — Base class for all identity profiles

Synopsis


#include <lasso/lasso.h>

enum                LassoRequestType;
                    LassoProfile;
LassoIdentity*      lasso_profile_get_identity          (LassoProfile *profile);
LassoSession*       lasso_profile_get_session           (LassoProfile *profile);
gboolean            lasso_profile_is_identity_dirty     (LassoProfile *profile);
gboolean            lasso_profile_is_session_dirty      (LassoProfile *profile);
gint                lasso_profile_set_identity_from_dump
                                                        (LassoProfile *profile,
                                                         const gchar *dump);
gint                lasso_profile_set_session_from_dump (LassoProfile *profile,
                                                         const gchar *dump);
LassoRequestType    lasso_profile_get_request_type_from_soap_msg
                                                        (const gchar *soap);
gboolean            lasso_profile_is_liberty_query      (const gchar *query);
LassoNode*          lasso_profile_get_nameIdentifier    (LassoProfile *profile);

Object Hierarchy

  GObject
   +----LassoNode
         +----LassoProfile
               +----LassoDefederation
               +----LassoLogin
               +----LassoLogout
               +----LassoNameRegistration
               +----LassoNameIdentifierMapping
               +----LassoNameIdManagement
               +----LassoEcp

Description

Details

enum LassoRequestType

typedef enum {
	LASSO_REQUEST_TYPE_INVALID = 0,
	LASSO_REQUEST_TYPE_LOGIN = 1,
	LASSO_REQUEST_TYPE_LOGOUT = 2,
	LASSO_REQUEST_TYPE_DEFEDERATION = 3,
	LASSO_REQUEST_TYPE_NAME_REGISTRATION = 4,
	LASSO_REQUEST_TYPE_NAME_IDENTIFIER_MAPPING = 5,
	LASSO_REQUEST_TYPE_LECP = 6,
	LASSO_REQUEST_TYPE_DISCO_QUERY = 7,
	LASSO_REQUEST_TYPE_DISCO_MODIFY = 8,
	LASSO_REQUEST_TYPE_DST_QUERY = 9,
	LASSO_REQUEST_TYPE_DST_MODIFY = 10,
	LASSO_REQUEST_TYPE_SASL_REQUEST = 11,
	LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT = 12,
	LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_REGISTER = 13,
	LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_ASSOCIATION_ADD = 14,
	LASSO_REQUEST_TYPE_IDWSF2_DISCO_QUERY = 15
} LassoRequestType;

Request types (known for SOAP endpoints)

LASSO_REQUEST_TYPE_INVALID

invalid

LASSO_REQUEST_TYPE_LOGIN

Single Sign On and Federation

LASSO_REQUEST_TYPE_LOGOUT

Single Logout

LASSO_REQUEST_TYPE_DEFEDERATION

Federation Termination

LASSO_REQUEST_TYPE_NAME_REGISTRATION

Name Registration

LASSO_REQUEST_TYPE_NAME_IDENTIFIER_MAPPING

Name Identifier Mapping

LASSO_REQUEST_TYPE_LECP

Liberty-Enabled Client / Proxy

LASSO_REQUEST_TYPE_DISCO_QUERY

LASSO_REQUEST_TYPE_DISCO_MODIFY

LASSO_REQUEST_TYPE_DST_QUERY

LASSO_REQUEST_TYPE_DST_MODIFY

LASSO_REQUEST_TYPE_SASL_REQUEST

LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT

LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_REGISTER

LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_ASSOCIATION_ADD

LASSO_REQUEST_TYPE_IDWSF2_DISCO_QUERY


LassoProfile

typedef struct {
	LassoServer *server;

	LassoNode *request;
	LassoNode *response;

	LassoNode *nameIdentifier;

	gchar *remote_providerID;

	gchar *msg_url;
	gchar *msg_body;
	gchar *msg_relayState;
} LassoProfile;


lasso_profile_get_identity ()

LassoIdentity*      lasso_profile_get_identity          (LassoProfile *profile);

Gets the identity bound to profile.

profile :

a LassoProfile

Returns :

the identity or NULL if it none was found. The LassoIdentity object is internally allocated and must not be freed by the caller.

lasso_profile_get_session ()

LassoSession*       lasso_profile_get_session           (LassoProfile *profile);

Gets the session bound to profile.

profile :

a LassoProfile

Returns :

the session or NULL if it none was found. The LassoSession object is internally allocated and must not be freed by the caller.

lasso_profile_is_identity_dirty ()

gboolean            lasso_profile_is_identity_dirty     (LassoProfile *profile);

Checks whether identity has been modified (and should therefore be saved).

profile :

a LassoProfile

Returns :

TRUE if identity has changed

lasso_profile_is_session_dirty ()

gboolean            lasso_profile_is_session_dirty      (LassoProfile *profile);

Checks whether session has been modified (and should therefore be saved).

profile :

a LassoProfile

Returns :

TRUE if session has changed

lasso_profile_set_identity_from_dump ()

gint                lasso_profile_set_identity_from_dump
                                                        (LassoProfile *profile,
                                                         const gchar *dump);

Builds a new LassoIdentity object from XML dump and binds it to profile.

profile :

a LassoProfile

dump :

XML identity dump

Returns :

0 on success; or a negative value otherwise.

lasso_profile_set_session_from_dump ()

gint                lasso_profile_set_session_from_dump (LassoProfile *profile,
                                                         const gchar *dump);

Builds a new LassoSession object from XML dump and binds it to profile.

profile :

a LassoProfile

dump :

XML session dump

Returns :

0 on success; or a negative value otherwise.

lasso_profile_get_request_type_from_soap_msg ()

LassoRequestType    lasso_profile_get_request_type_from_soap_msg
                                                        (const gchar *soap);

Looks up and return the type of the request in a SOAP message.

soap :

the SOAP message

Returns :

the type of request

lasso_profile_is_liberty_query ()

gboolean            lasso_profile_is_liberty_query      (const gchar *query);

Tests the query string to know if the URL is called as the result of a Liberty redirect (action initiated elsewhere) or not.

query :

HTTP query string

Returns :

TRUE if Liberty query, FALSE otherwise

lasso_profile_get_nameIdentifier ()

LassoNode*          lasso_profile_get_nameIdentifier    (LassoProfile *profile);

Looks up appropriate federation in object and gets the service provider name identifier (which is actually a LassoSamlNameIdentifier in ID-FF 1.2 and LassoSaml2NameID in SAML 2.0).

profile :

a LassoProfile

Returns :

the name identifier or NULL if none was found. The LassoNode object is internally allocated and must not be freed by the caller.