SERVER-127260: Use passkey idiom instead of friending std functions (#54122)
GitOrigin-RevId: b33853087812e94b5f31e328c148485d4fce4e23
This commit is contained in:
parent
8f1a18bdbd
commit
f686b54e2b
@ -43,8 +43,8 @@ StatusWith<std::unique_ptr<UserRequest>> UserRequestX509::makeUserRequestX509(
|
||||
std::shared_ptr<const SSLPeerInfo> peerInfo,
|
||||
bool forReacquire,
|
||||
bool insertAuthenticatedMechanism) {
|
||||
auto request =
|
||||
std::make_unique<UserRequestX509>(std::move(name), std::move(roles), std::move(peerInfo));
|
||||
auto request = std::make_unique<UserRequestX509>(
|
||||
Passkey{}, std::move(name), std::move(roles), std::move(peerInfo));
|
||||
|
||||
if (!forReacquire) {
|
||||
return std::unique_ptr<UserRequest>(std::move(request));
|
||||
|
||||
@ -51,14 +51,12 @@ namespace mongo {
|
||||
* SSLPeerInfo struct if they exist.
|
||||
*/
|
||||
class UserRequestX509 : public UserRequestGeneral {
|
||||
public:
|
||||
// We define this function as a friend so that makeUserRequestX509
|
||||
// can use it.
|
||||
friend std::unique_ptr<UserRequestX509> std::make_unique<UserRequestX509>(
|
||||
mongo::UserName&& name,
|
||||
boost::optional<std::set<mongo::RoleName>>&& roles,
|
||||
std::shared_ptr<const mongo::SSLPeerInfo>&& peerInfo);
|
||||
private:
|
||||
struct Passkey {
|
||||
Passkey() = default;
|
||||
};
|
||||
|
||||
public:
|
||||
/**
|
||||
* Makes a new UserRequestX509. Toggling for re-acquire to true enables
|
||||
* a re-fetch of the roles from the certificate.
|
||||
@ -90,8 +88,8 @@ public:
|
||||
|
||||
UserRequestCacheKey generateUserRequestCacheKey() const final;
|
||||
|
||||
protected:
|
||||
UserRequestX509(UserName name,
|
||||
UserRequestX509(Passkey,
|
||||
UserName name,
|
||||
boost::optional<std::set<RoleName>> roles,
|
||||
std::shared_ptr<const SSLPeerInfo> peerInfo)
|
||||
: UserRequestGeneral(std::move(name), std::move(roles)), _peerInfo(std::move(peerInfo)) {}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user