DBusAuthObserver


Object Hierarchy:

GLib.DBusAuthObserver GLib.DBusAuthObserver GLib.DBusAuthObserver GLib.Object GLib.Object GLib.Object->GLib.DBusAuthObserver

Description:

[ CCode ( type_id = "g_dbus_auth_observer_get_type ()" ) ]
[ Version ( since = "2.26" ) ]
public sealed class DBusAuthObserver : Object

`GDBusAuthObserver` provides a mechanism for participating in how a [class@Gio.

DBusServer] (or a [class@Gio.DBusConnection]) 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:

```c 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:

```c 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; } ```


Namespace: GLib
Package: gio-2.0

Content:

Creation methods:

Signals:

Inherited Members: