// Test redaction of passwords in command line SSL option parsing. import {requireSSLProvider} from "jstests/ssl/libs/ssl_helpers.js"; requireSSLProvider("openssl", function () { const baseName = "jstests_ssl_ssl_options"; jsTest.log("Testing censorship of ssl options"); const mongodConfig = { tlsCertificateKeyFile: "jstests/libs/password_protected.pem", tlsMode: "requireTLS", tlsCertificateKeyFilePassword: "qwerty", tlsClusterPassword: "qwerty", tlsCAFile: "jstests/libs/ca.pem", }; const mongodSource = MongoRunner.runMongod(mongodConfig); const getCmdLineOptsResult = mongodSource.adminCommand("getCmdLineOpts"); let i; let isPassword = false; for (i = 0; i < getCmdLineOptsResult.argv.length; i++) { if (isPassword) { assert.eq( getCmdLineOptsResult.argv[i], "", "Password not properly censored: " + tojson(getCmdLineOptsResult), ); isPassword = false; continue; } if ( getCmdLineOptsResult.argv[i] === "--tlsPEMKeyPassword" || getCmdLineOptsResult.argv[i] === "--tlsClusterPassword" ) { isPassword = true; } } assert.eq( getCmdLineOptsResult.parsed.net.tls.certificateKeyFilePassword, "", "Password not properly censored: " + tojson(getCmdLineOptsResult), ); assert.eq( getCmdLineOptsResult.parsed.net.tls.clusterPassword, "", "Password not properly censored: " + tojson(getCmdLineOptsResult), ); MongoRunner.stopMongod(mongodSource); print(baseName + " succeeded."); });