123456789101112131415161718192021222324252627282930313233343536373839 |
- "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 {
- prepare(handshakeDoc, authContext, callback) {
- const { credentials } = authContext;
- if (!credentials) {
- return callback(new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.'));
- }
- Object.assign(handshakeDoc, {
- speculativeAuthenticate: x509AuthenticateCommand(credentials)
- });
- callback(undefined, handshakeDoc);
- }
- auth(authContext, callback) {
- const connection = authContext.connection;
- const credentials = authContext.credentials;
- if (!credentials) {
- return callback(new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.'));
- }
- const response = authContext.response;
- if (response && response.speculativeAuthenticate) {
- return callback();
- }
- connection.command((0, utils_1.ns)('$external.$cmd'), x509AuthenticateCommand(credentials), undefined, callback);
- }
- }
- 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
|