diff options
author | Amalia Hawkins <amalia.hawkins@10gen.com> | 2015-04-24 11:54:40 -0400 |
---|---|---|
committer | Amalia Hawkins <amalia.hawkins@10gen.com> | 2015-04-28 16:41:22 -0400 |
commit | 3fe79932f7f20a78bd55f879863899c2443ab1a7 (patch) | |
tree | 8a465c8464c57ce323987a261168fe2c7355d0a5 /src/mongo/db/auth/authz_session_external_state_d.cpp | |
parent | fdfd8e79061f9ea12840875290d159dfafdcbc96 (diff) | |
download | mongo-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.cpp | 8 |
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 |