SignonAuthSession

SignonAuthSession — Authentication session handler.

Synopsis

#define             SIGNON_SESSION_DATA_CAPTION
#define             SIGNON_SESSION_DATA_PROXY
#define             SIGNON_SESSION_DATA_REALM
#define             SIGNON_SESSION_DATA_RENEW_TOKEN
#define             SIGNON_SESSION_DATA_SECRET
#define             SIGNON_SESSION_DATA_TIMEOUT
#define             SIGNON_SESSION_DATA_UI_POLICY
#define             SIGNON_SESSION_DATA_USERNAME
#define             SIGNON_SESSION_DATA_WINDOW_ID
struct              SignonAuthSession;
void                (*SignonAuthSessionProcessCb)       (SignonAuthSession *self,
                                                         GHashTable *session_data,
                                                         const GError *error,
                                                         gpointer user_data);
void                (*SignonAuthSessionQueryAvailableMechanismsCb)
                                                        (SignonAuthSession *self,
                                                         gchar **mechanisms,
                                                         const GError *error,
                                                         gpointer user_data);
enum                SignonSessionDataUiPolicy;
void                signon_auth_session_cancel          (SignonAuthSession *self);
const gchar *       signon_auth_session_get_method      (SignonAuthSession *self);
SignonAuthSession * signon_auth_session_new             (gint id,
                                                         const gchar *method_name,
                                                         GError **err);
void                signon_auth_session_process         (SignonAuthSession *self,
                                                         const GHashTable *session_data,
                                                         const gchar *mechanism,
                                                         SignonAuthSessionProcessCb cb,
                                                         gpointer user_data);
void                signon_auth_session_query_available_mechanisms
                                                        (SignonAuthSession *self,
                                                         const gchar **wanted_mechanisms,
                                                         SignonAuthSessionQueryAvailableMechanismsCb cb,
                                                         gpointer user_data);

Object Hierarchy

  GObject
   +----SignonAuthSession
  GEnum
   +----SignonSessionDataUiPolicy

Signals

  "state-changed"                                  : Action

Description

The SignonAuthSession object is responsible for handling the client authentication. SignonAuthSession objects can be created from existing identities (via signon_identity_create_session() or by passing a non-zero ID to signon_auth_session_new()), in which case the authentication data such as username and password will be implicitly taken from the identity, or they can be created with no existing identity bound to them, in which case all the authentication data must be filled in by the client when signon_auth_session_process() is called.

Details

SIGNON_SESSION_DATA_CAPTION

#define SIGNON_SESSION_DATA_CAPTION       "Caption"

Caption for the UI dialog.


SIGNON_SESSION_DATA_PROXY

#define SIGNON_SESSION_DATA_PROXY         "NetworkProxy"

Proxy.


SIGNON_SESSION_DATA_REALM

#define SIGNON_SESSION_DATA_REALM         "Realm"

Realm.


SIGNON_SESSION_DATA_RENEW_TOKEN

#define SIGNON_SESSION_DATA_RENEW_TOKEN   "RenewToken"

Requests the signon plugin to obtain a new token (boolean).


SIGNON_SESSION_DATA_SECRET

#define SIGNON_SESSION_DATA_SECRET        "Secret"

Secret.


SIGNON_SESSION_DATA_TIMEOUT

#define SIGNON_SESSION_DATA_TIMEOUT       "NetworkTimeout"

Network timeout, in milliseconds (uint32).


SIGNON_SESSION_DATA_UI_POLICY

#define SIGNON_SESSION_DATA_UI_POLICY     "UiPolicy"

Policy for the signon process.


SIGNON_SESSION_DATA_USERNAME

#define SIGNON_SESSION_DATA_USERNAME      "UserName"

Username.


SIGNON_SESSION_DATA_WINDOW_ID

#define SIGNON_SESSION_DATA_WINDOW_ID     "WindowId"

Platform-specific window id (for dialog transiency) - uint32.


struct SignonAuthSession

struct SignonAuthSession;

Opaque struct. Use the accessor functions below.


SignonAuthSessionProcessCb ()

void                (*SignonAuthSessionProcessCb)       (SignonAuthSession *self,
                                                         GHashTable *session_data,
                                                         const GError *error,
                                                         gpointer user_data);

This callback is invoked when the authentication plugin delivers the result of the signon_auth_session_process() operation.

self :

the SignonAuthSession.

session_data :

a dictionary with the response. [transfer full][element-type utf8 GValue]

error :

a GError if an error occurred, NULL otherwise.

user_data :

the user data that was passed when installing this callback.

SignonAuthSessionQueryAvailableMechanismsCb ()

void                (*SignonAuthSessionQueryAvailableMechanismsCb)
                                                        (SignonAuthSession *self,
                                                         gchar **mechanisms,
                                                         const GError *error,
                                                         gpointer user_data);

Callback to be passed to signon_auth_session_query_available_mechanisms().

self :

the SignonAuthSession.

mechanisms :

list of available mechanisms. [transfer full][type GStrv]

error :

a GError if an error occurred, NULL otherwise.

user_data :

the user data that was passed when installing this callback.

enum SignonSessionDataUiPolicy

typedef enum {
    SIGNON_POLICY_DEFAULT = 0,
    SIGNON_POLICY_REQUEST_PASSWORD,
    SIGNON_POLICY_NO_USER_INTERACTION,
    SIGNON_POLICY_VALIDATION,
} SignonSessionDataUiPolicy;

Policy for the signon process, passed to the UI plugin.

SIGNON_POLICY_DEFAULT

The plugin can decide when to show UI.

SIGNON_POLICY_REQUEST_PASSWORD

Force the user to enter the password.

SIGNON_POLICY_NO_USER_INTERACTION

No UI elements will be shown to the user.

SIGNON_POLICY_VALIDATION

UI elements can be shown to the user only when CAPTCHA-like security measures are required.

signon_auth_session_cancel ()

void                signon_auth_session_cancel          (SignonAuthSession *self);

Cancel the authentication session.

self :

the SignonAuthSession.

signon_auth_session_get_method ()

const gchar *       signon_auth_session_get_method      (SignonAuthSession *self);

Get the current authentication method.

self :

the SignonAuthSession.

Returns :

the authentication method being used, or NULL on failure.

signon_auth_session_new ()

SignonAuthSession * signon_auth_session_new             (gint id,
                                                         const gchar *method_name,
                                                         GError **err);

Creates a new SignonAuthSession, which can be used to authenticate using the specified method.

id :

the id of the SignonIdentity to be used. Can be 0, if this session is not bound to any stored identity.

method_name :

the name of the authentication method to be used.

err :

a pointer to a location which will contain the error, in case this function fails.

Returns :

a new SignonAuthSession.

signon_auth_session_process ()

void                signon_auth_session_process         (SignonAuthSession *self,
                                                         const GHashTable *session_data,
                                                         const gchar *mechanism,
                                                         SignonAuthSessionProcessCb cb,
                                                         gpointer user_data);

Performs one step of the authentication process. If the SignonAuthSession object is bound to an existing identity, the identity properties such as username and password will be also passed to the authentication plugin, so there's no need to fill them into session_data. session_data can be used to add additional authentication parameters to the session, or to override the parameters otherwise taken from the identity.

self :

the SignonAuthSession.

session_data :

a dictionary of parameters. [transfer none][element-type utf8 GValue]

mechanism :

the authentication mechanism to be used.

cb :

a callback which will be called with the result. [scope async]

user_data :

user data to be passed to the callback.

signon_auth_session_query_available_mechanisms ()

void                signon_auth_session_query_available_mechanisms
                                                        (SignonAuthSession *self,
                                                         const gchar **wanted_mechanisms,
                                                         SignonAuthSessionQueryAvailableMechanismsCb cb,
                                                         gpointer user_data);

Queries the mechanisms available for this authentication session. the result will be the intersection between wanted_mechanisms and the mechanisms supported by the authentication plugin.

self :

the SignonAuthSession.

wanted_mechanisms :

a NULL-terminated list of mechanisms supported by the client.

cb :

a callback which will be called with the result. [scope async]

user_data :

user data to be passed to the callback.

Signal Details

The "state-changed" signal

void                user_function                      (SignonAuthSession *arg0,
                                                        gint               arg1,
                                                        gchar             *arg2,
                                                        gpointer           user_data)      : Action

Emitted when the state of the SignonAuthSession changes.

@: @: @:

user_data :

user data set when the signal handler was connected.