diff --git a/bus/session.conf.in b/bus/session.conf.in
index cfe9544f..e78c1d33 100644
--- a/bus/session.conf.in
+++ b/bus/session.conf.in
@@ -14,6 +14,16 @@
@DBUS_SESSION_BUS_LISTEN_ADDRESS@
+
+ @DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL@
+
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index c767c171..af6e12ff 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -435,6 +435,7 @@ if (WIN32)
set (DBUS_SESSION_CONFIG_FILE "etc/dbus-1/session.conf")
# bus-test expects a non empty string
set (DBUS_USER "Administrator")
+ set (DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL "")
else (WIN32)
set (DBUS_SESSION_BUS_LISTEN_ADDRESS "unix:tmpdir=${DBUS_SESSION_SOCKET_DIR}" CACHE STRING "session bus default listening address")
set (DBUS_SESSION_BUS_CONNECT_ADDRESS "autolaunch:" CACHE STRING "session bus fallback address for clients")
@@ -443,6 +444,9 @@ else (WIN32)
set (DBUS_SYSTEM_CONFIG_FILE ${configdir}/system.conf)
set (DBUS_SESSION_CONFIG_FILE ${configdir}/session.conf)
set (DBUS_USER "root")
+ # For best security, assume that all non-Windows platforms can do
+ # credentials-passing.
+ set (DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL "EXTERNAL")
endif (WIN32)
set (DBUS_DAEMON_NAME "dbus-daemon" CACHE STRING "The name of the dbus daemon executable")
diff --git a/configure.ac b/configure.ac
index dcb60b94..60e1b344 100644
--- a/configure.ac
+++ b/configure.ac
@@ -122,6 +122,13 @@ if test "$dbus_cygwin" = yes; then
AC_DEFINE(DBUS_CYGWIN,1,[Defined if we run on a cygwin API based system])
fi
+# For best security, assume that all non-Windows platforms can do
+# credentials-passing.
+AS_IF([test "$dbus_win" = yes],
+ [DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL=""],
+ [DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL="EXTERNAL"])
+AC_SUBST([DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL])
+
AM_CONDITIONAL(DBUS_WIN, test "$dbus_win" = yes)
AM_CONDITIONAL(DBUS_WINCE, test "$dbus_wince" = yes)
AM_CONDITIONAL(DBUS_UNIX, test "$dbus_unix" = yes)