Top |
Description
The GDBusAuthObserver type provides a mechanism for participating in how a GDBusServer (or a GDBusConnection) authenticates remote peers. Simply instantiate a GDBusAuthObserver and connect to the signals you are interested in. Note that new signals may be added in the future
Controlling Authentication
For example, if you only want to allow D-Bus connections from processes owned by the same uid as the server, you would use a signal handler like the following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
static gboolean on_authorize_authenticated_peer (GDBusAuthObserver *observer, GIOStream *stream, GCredentials *credentials, gpointer user_data) { gboolean authorized; authorized = FALSE; if (credentials != NULL) { GCredentials *own_credentials; own_credentials = g_credentials_new (); if (g_credentials_is_same_user (credentials, own_credentials, NULL)) authorized = TRUE; g_object_unref (own_credentials); } return authorized; } |
Functions
g_dbus_auth_observer_new ()
GDBusAuthObserver *
g_dbus_auth_observer_new (void
);
Creates a new GDBusAuthObserver object.
Since 2.26
g_dbus_auth_observer_authorize_authenticated_peer ()
gboolean g_dbus_auth_observer_authorize_authenticated_peer (GDBusAuthObserver *observer
,GIOStream *stream
,GCredentials *credentials
);
Emits the “authorize-authenticated-peer” signal on observer
.
Parameters
observer |
||
stream |
A GIOStream for the GDBusConnection. |
|
credentials |
Credentials received from the peer or |
[allow-none] |
Since 2.26
g_dbus_auth_observer_allow_mechanism ()
gboolean g_dbus_auth_observer_allow_mechanism (GDBusAuthObserver *observer
,const gchar *mechanism
);
Emits the “allow-mechanism” signal on observer
.
Since 2.34
Types and Values
GDBusAuthObserver
typedef struct _GDBusAuthObserver GDBusAuthObserver;
The GDBusAuthObserver structure contains only private data and should only be accessed using the provided API.
Since 2.26
Signal Details
The “allow-mechanism”
signal
gboolean user_function (GDBusAuthObserver *observer, gchar *mechanism, gpointer user_data)
Emitted to check if mechanism
is allowed to be used.
Parameters
observer |
The GDBusAuthObserver emitting the signal. |
|
mechanism |
The name of the mechanism, e.g. |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
Since 2.34
The “authorize-authenticated-peer”
signal
gboolean user_function (GDBusAuthObserver *observer, GIOStream *stream, GCredentials *credentials, gpointer user_data)
Emitted to check if a peer that is successfully authenticated is authorized.
Parameters
observer |
The GDBusAuthObserver emitting the signal. |
|
stream |
A GIOStream for the GDBusConnection. |
|
credentials |
Credentials received from the peer or |
[allow-none] |
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
Since 2.26