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:
@@ -125,7 +125,8 @@
|
||||
G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER | \
|
||||
G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS | \
|
||||
G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION | \
|
||||
G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING)
|
||||
G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING | \
|
||||
G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER)
|
||||
|
||||
/**
|
||||
* SECTION:gdbusconnection
|
||||
@@ -2518,7 +2519,8 @@ initable_init (GInitable *initable,
|
||||
g_assert (connection->stream == NULL);
|
||||
|
||||
if ((connection->flags & G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER) ||
|
||||
(connection->flags & G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS))
|
||||
(connection->flags & G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS) ||
|
||||
(connection->flags & G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER))
|
||||
{
|
||||
g_set_error_literal (&connection->initialization_error,
|
||||
G_IO_ERROR,
|
||||
@@ -2553,6 +2555,7 @@ initable_init (GInitable *initable,
|
||||
connection->authentication_observer,
|
||||
connection->guid,
|
||||
(connection->flags & G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS),
|
||||
(connection->flags & G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER),
|
||||
get_offered_capabilities_max (connection),
|
||||
&connection->capabilities,
|
||||
&connection->credentials,
|
||||
@@ -2838,8 +2841,9 @@ g_dbus_connection_new_sync (GIOStream *stream,
|
||||
* This constructor can only be used to initiate client-side
|
||||
* connections - use g_dbus_connection_new() if you need to act as the
|
||||
* server. In particular, @flags cannot contain the
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER or
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS flags.
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER,
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS or
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER flags.
|
||||
*
|
||||
* When the operation is finished, @callback will be invoked. You can
|
||||
* then call g_dbus_connection_new_for_address_finish() to get the result of
|
||||
@@ -2929,8 +2933,9 @@ g_dbus_connection_new_for_address_finish (GAsyncResult *res,
|
||||
* This constructor can only be used to initiate client-side
|
||||
* connections - use g_dbus_connection_new_sync() if you need to act
|
||||
* as the server. In particular, @flags cannot contain the
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER or
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS flags.
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER,
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS or
|
||||
* %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER flags.
|
||||
*
|
||||
* This is a synchronous failable constructor. See
|
||||
* g_dbus_connection_new_for_address() for the asynchronous version.
|
||||
|
Reference in New Issue
Block a user