summaryrefslogtreecommitdiff
path: root/src/mongo/s/query/store_possible_cursor.cpp
diff options
context:
space:
mode:
authorIan Boros <ian.boros@10gen.com>2018-01-29 14:28:05 -0500
committerIan Boros <ian.boros@10gen.com>2018-02-07 13:09:43 -0500
commit8630f685156c7515c59ce071e59d9d6ec200f2e4 (patch)
treef13e93429738ae997a93adc3a4d717ac44bc15be /src/mongo/s/query/store_possible_cursor.cpp
parent5f86a8e4ca87f169dc708b15b13a26c2bb514762 (diff)
downloadmongo-8630f685156c7515c59ce071e59d9d6ec200f2e4.tar.gz
SERVER-32395 Make killCursors work against pinned cursors on mongos when auth is enabled
Diffstat (limited to 'src/mongo/s/query/store_possible_cursor.cpp')
-rw-r--r--src/mongo/s/query/store_possible_cursor.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mongo/s/query/store_possible_cursor.cpp b/src/mongo/s/query/store_possible_cursor.cpp
index f611e612d2a..38347a70a9e 100644
--- a/src/mongo/s/query/store_possible_cursor.cpp
+++ b/src/mongo/s/query/store_possible_cursor.cpp
@@ -61,9 +61,7 @@ StatusWith<BSONObj> storePossibleCursor(OperationContext* opCtx,
return cmdResult;
}
- ClusterClientCursorParams params(
- incomingCursorResponse.getValue().getNSS(),
- AuthorizationSession::get(opCtx->getClient())->getAuthenticatedUserNames());
+ ClusterClientCursorParams params(incomingCursorResponse.getValue().getNSS());
params.remotes.emplace_back(shardId,
server,
CursorResponse(incomingCursorResponse.getValue().getNSS(),
@@ -76,12 +74,14 @@ StatusWith<BSONObj> storePossibleCursor(OperationContext* opCtx,
// We don't expect to use this cursor until a subsequent getMore, so detach from the current
// OperationContext until then.
ccc->detachFromOperationContext();
+ auto authUsers = AuthorizationSession::get(opCtx->getClient())->getAuthenticatedUserNames();
auto clusterCursorId =
cursorManager->registerCursor(opCtx,
ccc.releaseCursor(),
requestedNss,
ClusterCursorManager::CursorType::SingleTarget,
- ClusterCursorManager::CursorLifetime::Mortal);
+ ClusterCursorManager::CursorLifetime::Mortal,
+ authUsers);
if (!clusterCursorId.isOK()) {
return clusterCursorId.getStatus();
}