GDBusAuthObserver

GDBusAuthObserver — Object used for authenticating connections

Synopsis

#include <gio/gio.h>

                    GDBusAuthObserver;
GDBusAuthObserver * g_dbus_auth_observer_new            (void);
gboolean            g_dbus_auth_observer_authorize_authenticated_peer
                                                        (GDBusAuthObserver *observer,
                                                         GIOStream *stream,
                                                         GCredentials *credentials);

Object Hierarchy

  GObject
   +----GDBusAuthObserver

Signals

  "authorize-authenticated-peer"                   : Run Last

Description

The GDBusAuthObserver type provides a mechanism for participating in how a GDBusServer (or a GDBusConnection) 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

For example, if you only want to allow D-Bus connections from processes owned by the same uid as the server, you would use a signal handler like the following:

Example 7. Controlling Authentication

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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;
}


Details

GDBusAuthObserver

typedef struct _GDBusAuthObserver GDBusAuthObserver;

The GDBusAuthObserver structure contains only private data and should only be accessed using the provided API.

Since 2.26


g_dbus_auth_observer_new ()

GDBusAuthObserver * g_dbus_auth_observer_new            (void);

Creates a new GDBusAuthObserver object.

Returns :

A GDBusAuthObserver. Free with g_object_unref().

Since 2.26


g_dbus_auth_observer_authorize_authenticated_peer ()

gboolean            g_dbus_auth_observer_authorize_authenticated_peer
                                                        (GDBusAuthObserver *observer,
                                                         GIOStream *stream,
                                                         GCredentials *credentials);

Emits the "authorize-authenticated-peer" signal on observer.

observer :

A GDBusAuthObserver.

stream :

A GIOStream for the GDBusConnection.

credentials :

Credentials received from the peer or NULL.

Returns :

TRUE if the peer is authorized, FALSE if not.

Since 2.26

Signal Details

The "authorize-authenticated-peer" signal

gboolean            user_function                      (GDBusAuthObserver *observer,
                                                        GIOStream         *stream,
                                                        GCredentials      *credentials,
                                                        gpointer           user_data)        : Run Last

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

observer :

The GDBusAuthObserver emitting the signal.

stream :

A GIOStream for the GDBusConnection.

credentials :

Credentials received from the peer or NULL.

user_data :

user data set when the signal handler was connected.

Returns :

TRUE if the peer is authorized, FALSE if not.

Since 2.26