Gio.DBusAuthObserver¶
- Subclasses:
None
Methods¶
- Inherited:
- Structs:
class |
|
|
|
|
Virtual Methods¶
- Inherited:
Properties¶
None
Signals¶
- Inherited:
Name |
Short Description |
---|---|
Emitted to check if mechanism is allowed to be used. |
|
Emitted to check if a peer that is successfully authenticated is authorized. |
Fields¶
- Inherited:
Class Details¶
- class Gio.DBusAuthObserver(**kwargs)¶
- Bases:
- Abstract:
No
The
Gio.DBusAuthObserver
type provides a mechanism for participating in how aGio.DBusServer
(or aGio.DBusConnection
) authenticates remote peers. Simply instantiate aGio.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
Gio.DBusServer
or server-sideGio.DBusConnection
will allow any authentication mechanism to be used. If you only want to allow D-Bus connections with theEXTERNAL
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
Gio.DBusServer
or server-sideGio.DBusConnection
will accept connections from any successfully authenticated user (but not from anonymous connections using theANONYMOUS
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 theGio.DBusServerFlags.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; }
New in version 2.26.
- classmethod new()[source]¶
- Returns:
A
Gio.DBusAuthObserver
. Free withGObject.Object.unref
().- Return type:
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:
Emits the
Gio.DBusAuthObserver
::allow-mechanism
signal on self.New in version 2.34.
- authorize_authenticated_peer(stream, credentials)[source]¶
- Parameters:
stream (
Gio.IOStream
) – AGio.IOStream
for theGio.DBusConnection
.credentials (
Gio.Credentials
orNone
) – Credentials received from the peer orNone
.
- Returns:
- Return type:
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:
- Parameters:
d_bus_auth_observer (
Gio.DBusAuthObserver
) – The object which received the signalmechanism (
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:
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:
- Parameters:
d_bus_auth_observer (
Gio.DBusAuthObserver
) – The object which received the signalstream (
Gio.IOStream
) – AGio.IOStream
for theGio.DBusConnection
.credentials (
Gio.Credentials
orNone
) – Credentials received from the peer orNone
.
- Returns:
- Return type:
Emitted to check if a peer that is successfully authenticated is authorized.
New in version 2.26.