Gio.DBusAuthObserver

g GObject.Object GObject.Object Gio.DBusAuthObserver Gio.DBusAuthObserver GObject.Object->Gio.DBusAuthObserver

Subclasses:

None

Methods

Inherited:

GObject.Object (37)

Structs:

GObject.ObjectClass (5)

class

new ()

allow_mechanism (mechanism)

authorize_authenticated_peer (stream, credentials)

Virtual Methods

Inherited:

GObject.Object (7)

Properties

None

Signals

Inherited:

GObject.Object (1)

Name

Short Description

allow-mechanism

Emitted to check if mechanism is allowed to be used.

authorize-authenticated-peer

Emitted to check if a peer that is successfully authenticated is authorized.

Fields

Inherited:

GObject.Object (1)

Class Details

class Gio.DBusAuthObserver(**kwargs)
Bases:

GObject.Object

Abstract:

No

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 bool on_allow_mechanism (Gio.DBusAuthObserver *observer, const str *mechanism, object user_data) { if (GLib.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 bool on_authorize_authenticated_peer (Gio.DBusAuthObserver *observer, Gio.IOStream *stream, Gio.Credentials *credentials, object user_data) { bool authorized;

authorized = False; if (credentials != None) { Gio.Credentials *own_credentials; own_credentials = Gio.Credentials.new (); if (Gio.Credentials.is_same_user (credentials, own_credentials, None)) authorized = True; GObject.Object.unref (own_credentials); }

return authorized; } ```

New in version 2.26.

classmethod new()[source]
Returns:

A Gio.DBusAuthObserver. Free with GObject.Object.unref().

Return type:

Gio.DBusAuthObserver

Creates a new Gio.DBusAuthObserver object.

New in version 2.26.

allow_mechanism(mechanism)[source]
Parameters:

mechanism (str) – The name of the mechanism, e.g. DBUS_COOKIE_SHA1.

Returns:

True if mechanism can be used to authenticate the other peer, False if not.

Return type:

bool

Emits the Gio.DBusAuthObserver ::allow-mechanism signal on self.

New in version 2.34.

authorize_authenticated_peer(stream, credentials)[source]
Parameters:
Returns:

True if the peer is authorized, False if not.

Return type:

bool

Emits the Gio.DBusAuthObserver ::authorize-authenticated-peer signal on self.

New in version 2.26.

Signal Details

Gio.DBusAuthObserver.signals.allow_mechanism(d_bus_auth_observer, mechanism)
Signal Name:

allow-mechanism

Flags:

RUN_LAST

Parameters:
  • d_bus_auth_observer (Gio.DBusAuthObserver) – The object which received the signal

  • mechanism (str) – The name of the mechanism, e.g. DBUS_COOKIE_SHA1.

Returns:

True if mechanism can be used to authenticate the other peer, False if not.

Return type:

bool

Emitted to check if mechanism is allowed to be used.

New in version 2.34.

Gio.DBusAuthObserver.signals.authorize_authenticated_peer(d_bus_auth_observer, stream, credentials)
Signal Name:

authorize-authenticated-peer

Flags:

RUN_LAST

Parameters:
Returns:

True if the peer is authorized, False if not.

Return type:

bool

Emitted to check if a peer that is successfully authenticated is authorized.

New in version 2.26.