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 class DBusAuthObserver : Object

The DBusAuthObserver type provides a mechanism for participating in how a DBusServer (or a DBusConnection) authenticates remote peers.

Simply instantiate a DBusAuthObserver 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 DBusServer or server-side DBusConnection 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 # {auth-observer}

By default, a DBusServer or server-side DBusConnection 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;
}

Namespace: GLib
Package: gio-2.0

Content:

Creation methods:

Signals:

Inherited Members:

All known members inherited from class GLib.Object



2022 vala-language.org