123456789101112131415161718192021222324252627282930313233343536 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.X509 = void 0;
- const error_1 = require("../../error");
- const utils_1 = require("../../utils");
- const auth_provider_1 = require("./auth_provider");
- class X509 extends auth_provider_1.AuthProvider {
- async prepare(handshakeDoc, authContext) {
- const { credentials } = authContext;
- if (!credentials) {
- throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
- }
- return { ...handshakeDoc, speculativeAuthenticate: x509AuthenticateCommand(credentials) };
- }
- async auth(authContext) {
- const connection = authContext.connection;
- const credentials = authContext.credentials;
- if (!credentials) {
- throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
- }
- const response = authContext.response;
- if (response?.speculativeAuthenticate) {
- return;
- }
- await connection.commandAsync((0, utils_1.ns)('$external.$cmd'), x509AuthenticateCommand(credentials), undefined);
- }
- }
- exports.X509 = X509;
- function x509AuthenticateCommand(credentials) {
- const command = { authenticate: 1, mechanism: 'MONGODB-X509' };
- if (credentials.username) {
- command.user = credentials.username;
- }
- return command;
- }
- //# sourceMappingURL=x509.js.map
|