Class: Gio::DBusAuthObserver

Inherits:
Object
  • Object
show all
Defined in:
(unknown)

Overview

The GDBus::AuthObserver type provides a mechanism for participating in how a GDBus::Server (or a #GDBusConnection) authenticates remote peers. Simply instantiate a GDBus::AuthObserver 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 GDBus::Server 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_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;
}

Instance Method Summary collapse

Instance Method Details

#allow_mechanism(mechanism) ⇒ TrueClass

Emits the GDBus::AuthObserver::allow-mechanism signal on observer.

Parameters:

  • mechanism (String)

    The name of the mechanism, e.g. ‘DBUS_COOKIE_SHA1`.

Returns:

  • (TrueClass)

    true if mechanism can be used to authenticate the other peer, false if not.

#authorize_authenticated_peer(stream, credentials) ⇒ TrueClass

Emits the GDBus::AuthObserver::authorize-authenticated-peer signal on observer.

Parameters:

  • stream (Gio::IOStream)

    A #GIOStream for the GDBus::Connection.

  • credentials (Gio::Credentials)

    Credentials received from the peer or nil.

Returns:

  • (TrueClass)

    true if the peer is authorized, false if not.

#newGio::DBusAuthObserver

Creates a new GDBus::AuthObserver object.

Returns: