Class
GioDBusAuthObserver
since: 2.26
Description [src]
final class Gio.DBusAuthObserver : GObject.Object
{
/* No available fields */
}
GDBusAuthObserver
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 Mechanisms
By default, a GDBusServer
or server-side GDBusConnection
will allow
any authentication mechanism to be used. If you only want to allow D-Bus
connections with the EXTERNAL
mechanism, which makes use of credentials
passing and is the recommended mechanism for modern Unix platforms such
as Linux and the BSD family, you would use a signal handler like this:
static gboolean
on_allow_mechanism (GDBusAuthObserver *observer,
const gchar *mechanism,
gpointer user_data)
{
if (g_strcmp0 (mechanism, "EXTERNAL") == 0)
{
return TRUE;
}
return FALSE;
}
Controlling Authorization
By default, a GDBusServer
or server-side GDBusConnection
will accept
connections from any successfully authenticated user (but not from
anonymous connections using the ANONYMOUS
mechanism). If you only
want to allow D-Bus connections from processes owned by the same uid
as the server, since GLib 2.68, you should use the
G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER
flag. It’s equivalent
to the following signal handler:
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;
}
Available since: 2.26
Instance methods
g_dbus_auth_observer_allow_mechanism
Emits the GDBusAuthObserver::allow-mechanism
signal on observer
.
since: 2.34
g_dbus_auth_observer_authorize_authenticated_peer
Emits the GDBusAuthObserver::authorize-authenticated-peer
signal on observer
.
since: 2.26
Signals
Gio.DBusAuthObserver::allow-mechanism
Emitted to check if mechanism
is allowed to be used.
since: 2.34
Gio.DBusAuthObserver::authorize-authenticated-peer
Emitted to check if a peer that is successfully authenticated is authorized.
since: 2.26
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.