summaryrefslogtreecommitdiff
path: root/src/mongo/db/auth/authz_session_external_state_d.cpp
diff options
context:
space:
mode:
authorAmalia Hawkins <amalia.hawkins@10gen.com>2015-04-24 11:54:40 -0400
committerAmalia Hawkins <amalia.hawkins@10gen.com>2015-04-28 16:41:22 -0400
commit3fe79932f7f20a78bd55f879863899c2443ab1a7 (patch)
tree8a465c8464c57ce323987a261168fe2c7355d0a5 /src/mongo/db/auth/authz_session_external_state_d.cpp
parentfdfd8e79061f9ea12840875290d159dfafdcbc96 (diff)
downloadmongo-3fe79932f7f20a78bd55f879863899c2443ab1a7.tar.gz
SERVER-18140: Allow getParameter to be executed locally against an arbiter in an authenticated replica set
Diffstat (limited to 'src/mongo/db/auth/authz_session_external_state_d.cpp')
-rw-r--r--src/mongo/db/auth/authz_session_external_state_d.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/auth/authz_session_external_state_d.cpp b/src/mongo/db/auth/authz_session_external_state_d.cpp
index dc78555b707..65f30b5ce75 100644
--- a/src/mongo/db/auth/authz_session_external_state_d.cpp
+++ b/src/mongo/db/auth/authz_session_external_state_d.cpp
@@ -36,6 +36,7 @@
#include "mongo/db/instance.h"
#include "mongo/db/jsobj.h"
#include "mongo/db/operation_context.h"
+#include "mongo/db/repl/replication_coordinator_global.h"
#include "mongo/scripting/engine.h"
#include "mongo/util/assert_util.h"
@@ -60,4 +61,11 @@ namespace mongo {
AuthzSessionExternalStateServerCommon::shouldIgnoreAuthChecks();
}
+ bool AuthzSessionExternalStateMongod::serverIsArbiter() const {
+ // Arbiters have access to extra privileges under localhost. See SERVER-5479.
+ return (repl::getGlobalReplicationCoordinator()->getReplicationMode() ==
+ repl::ReplicationCoordinator::modeReplSet &&
+ repl::getGlobalReplicationCoordinator()->getMemberState().arbiter());
+ }
+
} // namespace mongo