Top |
const gchar * | gsignond_extension_get_name () |
guint32 | gsignond_extension_get_version () |
GSignondStorageManager * | gsignond_extension_get_storage_manager () |
GSignondSecretStorage * | gsignond_extension_get_secret_storage () |
GSignondAccessControlManager * | gsignond_extension_get_access_control_manager () |
GSignondExtension provides access to platform adaptation functionality. It contains getter methods for default implementations of GSignondAccessControlManager, GSignondSecretStorage and GSignondStorageManager.
gSSO can be adapted to a specific platform environment by implementing a custom extension module. The following steps need to be taken:
a) subclass and re-implement some (or all) of the functionality of the above three classes.
b) subclass GSignondExtension and provide implementations of its getter methods for those of the adaptation classes that have been changed.
d) provide a function GSignondExtension * extensionname_extension_init(void)
that returns an instance of the GSignondExtension subclass.
c) build and install these implementations as a gSSO extension module and configure gSSO to use it.
Examples of custom extensions can be seen here:
https://gitlab.com/accounts-sso/gsignond/tree/master/src/extensionsand gSSO configuration is described in GSignondConfig.
const gchar *
gsignond_extension_get_name (GSignondExtension *self
);
Get a human readable name of the extension. Default implementation returns "default".
guint32
gsignond_extension_get_version (GSignondExtension *self
);
Get version of the extension, split into four bytes in order from MSB to LSB; major, minor, patchlevel, build. Default implementation returns 0.
GSignondStorageManager * gsignond_extension_get_storage_manager (GSignondExtension *self
,GSignondConfig *config
);
Factory method to get a singleton storage manager object. See GSignondStorageManager for the description of the default implementation.
GSignondSecretStorage * gsignond_extension_get_secret_storage (GSignondExtension *self
,GSignondConfig *config
);
Factory method to get a singleton secret storage object. See GSignondSecretStorage for the description of the default implementation.
GSignondAccessControlManager * gsignond_extension_get_access_control_manager (GSignondExtension *self
,GSignondConfig *config
);
Factory method to get a singleton access control manager object. See GSignondAccessControlManager for the description of the default implementation.
struct GSignondExtensionClass { GObjectClass parent_class; const gchar * (*get_extension_name) (GSignondExtension *self); guint32 (*get_extension_version) (GSignondExtension *self); GSignondStorageManager * (*get_storage_manager) (GSignondExtension *self, GSignondConfig *config); GSignondSecretStorage * (*get_secret_storage) (GSignondExtension *self, GSignondConfig *config); GSignondAccessControlManager * (*get_access_control_manager) ( GSignondExtension *self, GSignondConfig *config); };
GSignondExtensionClass class containing pointers to class methods.
implementation of |
||
implementation of |
||
implementation of |
||
implementation of |
||
implementation of |
typedef struct _GSignondExtension GSignondExtension;
Opaque GSignondExtension data structure.