summaryrefslogtreecommitdiff
path: root/src/mongo/db/kill_sessions.cpp
diff options
context:
space:
mode:
authorA. Jesse Jiryu Davis <jesse@mongodb.com>2020-10-05 15:45:57 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-10-05 22:06:43 +0000
commit99e27ba5943fd561242ae0f90e263e9a4098036e (patch)
treea6cf16b765a877a474faaa8ba30c0f76ac312524 /src/mongo/db/kill_sessions.cpp
parent5a155f06bffb6141a40497fdef1dd61a2aaf2962 (diff)
downloadmongo-99e27ba5943fd561242ae0f90e263e9a4098036e.tar.gz
SERVER-50375 Ensure mongos forwards API parameters to shards, try 3
Diffstat (limited to 'src/mongo/db/kill_sessions.cpp')
-rw-r--r--src/mongo/db/kill_sessions.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/mongo/db/kill_sessions.cpp b/src/mongo/db/kill_sessions.cpp
index 41033d23bbb..b167e14c156 100644
--- a/src/mongo/db/kill_sessions.cpp
+++ b/src/mongo/db/kill_sessions.cpp
@@ -31,6 +31,7 @@
#include "mongo/db/kill_sessions.h"
+#include "mongo/db/api_parameters.h"
#include "mongo/db/auth/authorization_session.h"
#include "mongo/db/client.h"
#include "mongo/db/operation_context.h"
@@ -96,27 +97,25 @@ std::tuple<std::vector<UserName>, std::vector<RoleName>> getKillAllSessionsByPat
return out;
}
-KillAllSessionsByPattern makeKillAllSessionsByPattern(OperationContext* opCtx) {
+KillAllSessionsByPatternItem makeKillAllSessionsByPattern(OperationContext* opCtx) {
KillAllSessionsByPattern kasbp;
kasbp.setUsers(getKillAllSessionsImpersonateUsers(opCtx));
kasbp.setRoles(getKillAllSessionsImpersonateRoles(opCtx));
-
- return kasbp;
+ return {kasbp, APIParameters::get(opCtx)};
}
-KillAllSessionsByPattern makeKillAllSessionsByPattern(OperationContext* opCtx,
- const KillAllSessionsUser& kasu) {
- KillAllSessionsByPattern kasbp = makeKillAllSessionsByPattern(opCtx);
+KillAllSessionsByPatternItem makeKillAllSessionsByPattern(OperationContext* opCtx,
+ const KillAllSessionsUser& kasu) {
+ KillAllSessionsByPatternItem item = makeKillAllSessionsByPattern(opCtx);
auto authMgr = AuthorizationManager::get(opCtx->getServiceContext());
UserName un(kasu.getUser(), kasu.getDb());
auto user = uassertStatusOK(authMgr->acquireUser(opCtx, un));
- kasbp.setUid(user->getDigest());
-
- return kasbp;
+ item.pattern.setUid(user->getDigest());
+ return item;
}
KillAllSessionsByPatternSet makeSessionFilterForAuthenticatedUsers(OperationContext* opCtx) {
@@ -127,18 +126,18 @@ KillAllSessionsByPatternSet makeSessionFilterForAuthenticatedUsers(OperationCont
if (auto user = authSession->lookupUser(*it)) {
KillAllSessionsByPattern pattern;
pattern.setUid(user->getDigest());
- patterns.emplace(std::move(pattern));
+ KillAllSessionsByPatternItem item{std::move(pattern), APIParameters::get(opCtx)};
+ patterns.emplace(std::move(item));
}
}
return patterns;
}
-KillAllSessionsByPattern makeKillAllSessionsByPattern(OperationContext* opCtx,
- const LogicalSessionId& lsid) {
- KillAllSessionsByPattern kasbp = makeKillAllSessionsByPattern(opCtx);
- kasbp.setLsid(lsid);
-
- return kasbp;
+KillAllSessionsByPatternItem makeKillAllSessionsByPattern(OperationContext* opCtx,
+ const LogicalSessionId& lsid) {
+ auto item = makeKillAllSessionsByPattern(opCtx);
+ item.pattern.setLsid(lsid);
+ return item;
}
} // namespace mongo