diff options
Diffstat (limited to 'jstests/auth/logs_include_client_info.js')
-rw-r--r-- | jstests/auth/logs_include_client_info.js | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/jstests/auth/logs_include_client_info.js b/jstests/auth/logs_include_client_info.js index 31594a60de5..8d5115cc328 100644 --- a/jstests/auth/logs_include_client_info.js +++ b/jstests/auth/logs_include_client_info.js @@ -1,5 +1,6 @@ // This test just checks that the success/failure messages for authentication include the IP // address of the client attempting to authenticate. +load("jstests/libs/logv2_helpers.js"); (function() { const conn = MongoRunner.runMongod({auth: ""}); @@ -18,12 +19,33 @@ failConn.getDB("admin").auth("root", "toot"); const log = assert.commandWorked(admin.runCommand({getLog: "global"})).log; -const successRegex = - /Successfully authenticated as principal root on admin from client (?:\d{1,3}\.){3}\d{1,3}:\d+/; -const failRegex = - /SASL SCRAM-SHA-\d+ authentication failed for root on admin from client (?:\d{1,3}\.){3}\d{1,3}:\d+/; +if (isJsonLog(conn)) { + function checkAuthSuccess(element, index, array) { + const log = JSON.parse(element); + + return log.id === 20250 && log.attr.principalName === "root" && + log.attr.authDB === "admin" && /(?:\d{1,3}\.){3}\d{1,3}:\d+/.test(log.attr.client); + } + + function checkSCRAMfail(element, index, array) { + const log = JSON.parse(element); + + return log.id === 20249 && /SCRAM-SHA-\d+/.test(log.attr.mechanism) && + log.attr.principalName === "root" && log.attr.authDB === "admin" && + /(?:\d{1,3}\.){3}\d{1,3}:\d+/.test(log.attr.client); + } + + assert(log.some(checkAuthSuccess)); + assert(log.some(checkSCRAMfail)); +} else { + const successRegex = + /Successfully authenticated as principal root on admin from client (?:\d{1,3}\.){3}\d{1,3}:\d+/; + const failRegex = + /SASL SCRAM-SHA-\d+ authentication failed for root on admin from client (?:\d{1,3}\.){3}\d{1,3}:\d+/; + + assert(log.some((line) => successRegex.test(line))); + assert(log.some((line) => failRegex.test(line))); +} -assert(log.some((line) => successRegex.test(line))); -assert(log.some((line) => failRegex.test(line))); MongoRunner.stopMongod(conn); })(); |