mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-02 07:23:41 +02:00
gdbus: Add flags to require authentication as the same user
This eliminates a common use case for the `GDBusAuthObserver::authorize-authenticated-peer` signal, which is often implemented incorrectly by people. Suggested by Simon McVittie. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Fixes: #1804
This commit is contained in:
@@ -59,7 +59,8 @@
|
||||
|
||||
#define G_DBUS_SERVER_FLAGS_ALL \
|
||||
(G_DBUS_SERVER_FLAGS_RUN_IN_THREAD | \
|
||||
G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS)
|
||||
G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS | \
|
||||
G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER)
|
||||
|
||||
/**
|
||||
* SECTION:gdbusserver
|
||||
@@ -81,7 +82,9 @@
|
||||
* Note that a minimal #GDBusServer will accept connections from any
|
||||
* peer. In many use-cases it will be necessary to add a #GDBusAuthObserver
|
||||
* that only accepts connections that have successfully authenticated
|
||||
* as the same user that is running the #GDBusServer.
|
||||
* as the same user that is running the #GDBusServer. Since GLib 2.68 this can
|
||||
* be achieved more simply by passing the
|
||||
* %G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER flag to the server.
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -1037,6 +1040,8 @@ on_run (GSocketService *service,
|
||||
G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING;
|
||||
if (server->flags & G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS)
|
||||
connection_flags |= G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS;
|
||||
if (server->flags & G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER)
|
||||
connection_flags |= G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER;
|
||||
|
||||
connection = g_dbus_connection_new_sync (G_IO_STREAM (socket_connection),
|
||||
server->guid,
|
||||
|
Reference in New Issue
Block a user