{"action":"created","comment":{"url":"https://api.github.com/repos/mongodb/specifications/pulls/comments/180922178","pull_request_review_id":111431294,"id":180922178,"diff_hunk":"@@ -1,279 +1,344 @@\n {\n-\t\"tests\": [\n-\t\t{\n-\t\t\t\"description\": \"should use the default source and mechanism\",\n-\t\t\t\"uri\": \"mongodb://user:password@localhost\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"db\": \"admin\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should use the database when no authSource is specified\",\n-\t\t\t\"uri\": \"mongodb://user:password@localhost/foo\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"db\": \"foo\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should use the authSource when specified\",\n-\t\t\t\"uri\": \"mongodb://user:password@localhost/foo?authSource=bar\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"db\": \"bar\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize an empty password\",\n-\t\t\t\"uri\": \"mongodb://user:@localhost\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"username\": \"user\",\n-\t\t\t\t\"password\": \"\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize no password\",\n-\t\t\t\"uri\": \"mongodb://user@localhost\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"username\": \"user\",\n-\t\t\t\t\"password\": null\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize a url escaped character in the username\",\n-\t\t\t\"uri\": \"mongodb://user%40DOMAIN.COM:password@localhost\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"username\": \"user@DOMAIN.COM\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize the mechanism\",\n-\t\t\t\"uri\": \"mongodb://user@localhost/?authMechanism=GSSAPI\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": {\n-\t\t\t\t\"authmechanism\": \"GSSAPI\"\n-\t\t\t}\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should use $external as the source\",\n-\t\t\t\"uri\": \"mongodb://user%40DOMAIN.COM:password@localhost/?authMechanism=GSSAPI\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"db\": \"$external\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should use $external as the source when a database is specified\",\n-\t\t\t\"uri\": \"mongodb://user%40DOMAIN.COM:password@localhost/foo?authMechanism=GSSAPI\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"db\": \"$external\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should throw an exception when an authSource is specified other than $external\",\n-\t\t\t\"uri\": \"mongodb://user%40DOMAIN.COM:password@localhost/foo?authMechanism=GSSAPI&authSource=bar\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": false,\n-\t\t\t\"warning\": true,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": null\n-\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should throw an exception when an authMechanism is specified with no username\",\n-\t\t\t\"uri\": \"mongodb://localhost/?authMechanism=GSSAPI\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": false,\n-\t\t\t\"warning\": true,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should accept generic mechanism property\",\n-\t\t\t\"uri\": \"mongodb://user%40DOMAIN.COM:password@localhost/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:other,CANONICALIZE_HOST_NAME:true\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": {\n-\t\t\t\t\"authmechanism\": \"GSSAPI\",\n-\t\t\t\t\"authmechanismproperties\": {\n-\t\t\t\t\t\"SERVICE_NAME\": \"other\",\n-\t\t\t\t\t\"CANONICALIZE_HOST_NAME\": true\n-\t\t\t\t}\n-\t\t\t}\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should accept legacy gssapiServiceName\",\n-\t\t\t\"uri\": \"mongodb://user%40DOMAIN.COM:password@localhost/?authMechanism=GSSAPI&gssapiServiceName=other\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": {\n-\t\t\t\t\"authmechanism\": \"GSSAPI\",\n-\t\t\t\t\"authmechanismproperties\": {\n-\t\t\t\t\t\"SERVICE_NAME\": \"other\"\n-\t\t\t\t}\n-\t\t\t}\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize the mechanism\",\n-\t\t\t\"uri\": \"mongodb://user:pass@localhost/?authMechanism=MONGODB-CR\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": {\n-\t\t\t\t\"authmechanism\": \"MONGODB-CR\"\n-\t\t\t}\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should throw an exception when an authMechanism is specified with no username\",\n-\t\t\t\"uri\": \"mongodb://localhost/?authMechanism=MONGODB-CR\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": false,\n-\t\t\t\"warning\": true,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should use $external as the source\",\n-\t\t\t\"uri\": \"mongodb://CN%3DmyName%2COU%3DmyOrgUnit%2CO%3DmyOrg%2CL%3DmyLocality%2CST%3DmyState%2CC%3DmyCountry@localhost/?authMechanism=MONGODB-X509\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"db\": \"$external\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should use $external as the source when a database is specified\",\n-\t\t\t\"uri\": \"mongodb://CN%3DmyName%2COU%3DmyOrgUnit%2CO%3DmyOrg%2CL%3DmyLocality%2CST%3DmyState%2CC%3DmyCountry@localhost/foo?authMechanism=MONGODB-X509\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"db\": \"$external\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should throw an exception when an authSource is specified other than $external\",\n-\t\t\t\"uri\": \"mongodb://CN%3DmyName%2COU%3DmyOrgUnit%2CO%3DmyOrg%2CL%3DmyLocality%2CST%3DmyState%2CC%3DmyCountry@localhost/foo?authMechanism=MONGODB-X509&authSource=bar\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": false,\n-\t\t\t\"warning\": true,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize the mechanism\",\n-\t\t\t\"uri\": \"mongodb://CN%3DmyName%2COU%3DmyOrgUnit%2CO%3DmyOrg%2CL%3DmyLocality%2CST%3DmyState%2CC%3DmyCountry@localhost/?authMechanism=MONGODB-X509\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": {\n-\t\t\t\t\"authmechanism\": \"MONGODB-X509\"\n-\t\t\t}\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize the mechanism with no username\",\n-\t\t\t\"uri\": \"mongodb://localhost/?authMechanism=MONGODB-X509\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"username\": null\n-\t\t\t},\n-\t\t\t\"options\": {\n-\t\t\t\t\"authmechanism\": \"MONGODB-X509\"\n-\t\t\t}\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize the encoded username\",\n-\t\t\t\"uri\": \"mongodb://CN%3DmyName%2COU%3DmyOrgUnit%2CO%3DmyOrg%2CL%3DmyLocality%2CST%3DmyState%2CC%3DmyCountry@localhost/?authMechanism=MONGODB-X509\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": {\n-\t\t\t\t\"username\": \"CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry\"\n-\t\t\t},\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize the mechanism\",\n-\t\t\t\"uri\": \"mongodb://user:password@localhost/?authMechanism=PLAIN\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": {\n-\t\t\t\t\"authmechanism\": \"PLAIN\"\n-\t\t\t}\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should throw an exception when an authMechanism is specified with no username\",\n-\t\t\t\"uri\": \"mongodb://localhost/?authMechanism=PLAIN\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": false,\n-\t\t\t\"warning\": true,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": null\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should recognize the mechanism\",\n-\t\t\t\"uri\": \"mongodb://user:password@localhost/?authMechanism=SCRAM-SHA-1\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": true,\n-\t\t\t\"warning\": false,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": {\n-\t\t\t\t\"authmechanism\": \"SCRAM-SHA-1\"\n-\t\t\t}\n-\t\t},\n-\t\t{\n-\t\t\t\"description\": \"should throw an exception when an authMechanism is specified with no username\",\n-\t\t\t\"uri\": \"mongodb://localhost/?authMechanism=SCRAM-SHA-1\",\n-\t\t\t\"hosts\": [],\n-\t\t\t\"valid\": false,\n-\t\t\t\"warning\": true,\n-\t\t\t\"auth\": null,\n-\t\t\t\"options\": null\n-\t\t}\n-\t]\n+  \"tests\": [\n+    {\n+      \"description\": \"should use the default source and mechanism\",\n+      \"uri\": \"mongodb://user:password@localhost\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user\",\n+        \"password\": \"password\",\n+        \"db\": \"admin\"\n+      },\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should use the database when no authSource is specified\",\n+      \"uri\": \"mongodb://user:password@localhost/foo\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user\",\n+        \"password\": \"password\",\n+        \"db\": \"foo\"\n+      },\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should use the authSource when specified\",\n+      \"uri\": \"mongodb://user:password@localhost/foo?authSource=bar\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user\",\n+        \"password\": \"password\",\n+        \"db\": \"bar\"\n+      },\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should recognise the mechanism (GSSAPI)\",\n+      \"uri\": \"mongodb://user%40DOMAIN.COM@localhost/?authMechanism=GSSAPI\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user@DOMAIN.COM\",\n+        \"password\": null,\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"GSSAPI\"\n+      }\n+    },\n+    {\n+      \"description\": \"should default the auth database to $external when the mechanism is GSSAPI\",\n+      \"uri\": \"mongodb://user%40DOMAIN.COM@localhost/foo?authMechanism=GSSAPI\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user@DOMAIN.COM\",\n+        \"password\": null,\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"GSSAPI\"\n+      }\n+    },\n+    {\n+      \"description\": \"should recognise the mechanism where authSource $external (GSSAPI)\",\n+      \"uri\": \"mongodb://user%40DOMAIN.COM@localhost/foo?authMechanism=GSSAPI&authSource=$external\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user@DOMAIN.COM\",\n+        \"password\": null,\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"GSSAPI\"\n+      }\n+    },\n+    {\n+      \"description\": \"should accept generic mechanism property (GSSAPI)\",\n+      \"uri\": \"mongodb://user%40DOMAIN.COM@localhost/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:other,CANONICALIZE_HOST_NAME:true\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user@DOMAIN.COM\",\n+        \"password\": null,\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"GSSAPI\",\n+        \"authmechanismproperties\": {\n+          \"SERVICE_NAME\": \"other\",\n+          \"CANONICALIZE_HOST_NAME\": true\n+        }\n+      }\n+    },\n+    {\n+      \"description\": \"should recognise password if SSPI is supported (GSSAPI)\",\n+      \"uri\": \"mongodb://user%40DOMAIN.COM:password@localhost/foo?authMechanism=GSSAPI&authSource=$external\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user@DOMAIN.COM\",\n+        \"password\": \"password\",\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"GSSAPI\"\n+      }\n+    },\n+    {\n+      \"description\": \"should accept legacy gssapiServiceName (GSSAPI)\",\n+      \"uri\": \"mongodb://user%40DOMAIN.COM@localhost/?authMechanism=GSSAPI&gssapiServiceName=other\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user@DOMAIN.COM\",\n+        \"password\": null,\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"GSSAPI\",\n+        \"authmechanismproperties\": {\n+          \"SERVICE_NAME\": \"other\"\n+        }\n+      }\n+    },\n+    {\n+      \"description\": \"should throw an exception if provided with an invalid authSource (GSSAPI)\",\n+      \"uri\": \"mongodb://user%40DOMAIN.COM@localhost?authMechanism=GSSAPI&authSource=foo\",\n+      \"hosts\": null,\n+      \"valid\": false,\n+      \"warning\": false,\n+      \"auth\": null,\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should throw an exception when an authMechanism (GSSAPI) has an authSource other than $external\",\n+      \"uri\": \"mongodb://user%40DOMAIN.COM@localhost/foo?authMechanism=GSSAPI&authSource=bar\",\n+      \"hosts\": null,\n+      \"valid\": false,\n+      \"warning\": true,\n+      \"auth\": null,\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should throw an exception when an authMechanism (GSSAPI) is specified with no username\",\n+      \"uri\": \"mongodb://localhost/?authMechanism=GSSAPI\",\n+      \"hosts\": null,\n+      \"valid\": false,\n+      \"warning\": true,\n+      \"auth\": null,\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should recognize the mechanism (MONGODB-CR)\",\n+      \"uri\": \"mongodb://user:password@localhost/?authMechanism=MONGODB-CR\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user\",\n+        \"password\": \"password\",\n+        \"db\": \"admin\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"MONGODB-CR\"\n+      }\n+    },\n+    {\n+      \"description\": \"should throw an exception when an authMechanism (MONGODB-CR) is specified with no username\",\n+      \"uri\": \"mongodb://localhost/?authMechanism=MONGODB-CR\",\n+      \"hosts\": null,\n+      \"valid\": false,\n+      \"warning\": true,\n+      \"auth\": null,\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should recognize the mechanism (MONGODB-X509)\",\n+      \"uri\": \"mongodb://CN%3DmyName%2COU%3DmyOrgUnit%2CO%3DmyOrg%2CL%3DmyLocality%2CST%3DmyState%2CC%3DmyCountry@localhost/?authMechanism=MONGODB-X509\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry\",\n+        \"password\": null,\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"MONGODB-X509\"\n+      }\n+    },\n+    {\n+      \"description\": \"should recognize the mechanism where authSource $external (MONGODB-X509)\",\n+      \"uri\": \"mongodb://CN%3DmyName%2COU%3DmyOrgUnit%2CO%3DmyOrg%2CL%3DmyLocality%2CST%3DmyState%2CC%3DmyCountry@localhost/foo?authMechanism=MONGODB-X509&authSource=$external\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry\",\n+        \"password\": null,\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"MONGODB-X509\"\n+      }\n+    },\n+    {\n+      \"description\": \"should throw an exception when an authMechanism (MONGODB-X509) has an authSource other than $external\",\n+      \"uri\": \"mongodb://CN%3DmyName%2COU%3DmyOrgUnit%2CO%3DmyOrg%2CL%3DmyLocality%2CST%3DmyState%2CC%3DmyCountry@localhost/foo?authMechanism=MONGODB-X509&authSource=bar\",\n+      \"hosts\": null,\n+      \"valid\": false,\n+      \"warning\": true,\n+      \"auth\": null,\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should recognize the mechanism (MONGODB-X509) with no username\",\n+      \"uri\": \"mongodb://localhost/?authMechanism=MONGODB-X509\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": null,\n+        \"password\": null,\n+        \"db\": \"$external\"\n+      },\n+      \"options\": {\n+        \"authmechanism\": \"MONGODB-X509\"\n+      }\n+    },\n+    {\n+      \"description\": \"should not support passwords with the mechanism (MONGODB-X509)\",\n+      \"uri\": \"mongodb://user:password@localhost/?authMechanism=MONGODB-X509\",\n+      \"hosts\": null,\n+      \"valid\": false,\n+      \"warning\": false,\n+      \"auth\": null,\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should throw an exception if provided with an invalid authSource (MONGODB-X509)\",\n+      \"uri\": \"mongodb://user@localhost/?authMechanism=MONGODB-X509&authSource=foo\",\n+      \"hosts\": null,\n+      \"valid\": false,\n+      \"warning\": false,\n+      \"auth\": null,\n+      \"options\": null\n+    },\n+    {\n+      \"description\": \"should recognize the mechanism (PLAIN)\",\n+      \"uri\": \"mongodb://user:password@localhost/?authMechanism=PLAIN\",\n+      \"hosts\": null,\n+      \"valid\": true,\n+      \"warning\": false,\n+      \"auth\": {\n+        \"username\": \"user\",\n+        \"password\": \"password\",\n+        \"db\": \"$external\"","path":"source/auth/tests/connection-string.json","position":575,"original_position":548,"commit_id":"30d90a448ce4409cb2291d6f20dd03e2bee8cce7","original_commit_id":"dd1a1548b8c47d58a0c4e398b22cf777fa8342ae","user":{"login":"behackett","id":573553,"avatar_url":"https://avatars1.githubusercontent.com/u/573553?v=4","gravatar_id":"","url":"https://api.github.com/users/behackett","html_url":"https://github.com/behackett","followers_url":"https://api.github.com/users/behackett/followers","following_url":"https://api.github.com/users/behackett/following{/other_user}","gists_url":"https://api.github.com/users/behackett/gists{/gist_id}","starred_url":"https://api.github.com/users/behackett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/behackett/subscriptions","organizations_url":"https://api.github.com/users/behackett/orgs","repos_url":"https://api.github.com/users/behackett/repos","events_url":"https://api.github.com/users/behackett/events{/privacy}","received_events_url":"https://api.github.com/users/behackett/received_events","type":"User","site_admin":false},"body":"So, the spec is wrong. With PLAIN you're delegating the task of authentication to the server itself. The PLAIN mechanism is so named because you send the plain text username and password to the server.\r\n\r\nhttps://tools.ietf.org/html/rfc4616","created_at":"2018-04-11T22:57:37Z","updated_at":"2018-04-11T22:57:37Z","html_url":"https://github.com/mongodb/specifications/pull/301#discussion_r180922178","pull_request_url":"https://api.github.com/repos/mongodb/specifications/pulls/301","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/mongodb/specifications/pulls/comments/180922178"},"html":{"href":"https://github.com/mongodb/specifications/pull/301#discussion_r180922178"},"pull_request":{"href":"https://api.github.com/repos/mongodb/specifications/pulls/301"}},"in_reply_to_id":180285646},"pull_request":{"url":"https://api.github.com/repos/mongodb/specifications/pulls/301","id":180397401,"html_url":"https://github.com/mongodb/specifications/pull/301","diff_url":"https://github.com/mongodb/specifications/pull/301.diff","patch_url":"https://github.com/mongodb/specifications/pull/301.patch","issue_url":"https://api.github.com/repos/mongodb/specifications/issues/301","number":301,"state":"open","locked":false,"title":"Clarified defaults for auth mechanisms","user":{"login":"rozza","id":420,"avatar_url":"https://avatars0.githubusercontent.com/u/420?v=4","gravatar_id":"","url":"https://api.github.com/users/rozza","html_url":"https://github.com/rozza","followers_url":"https://api.github.com/users/rozza/followers","following_url":"https://api.github.com/users/rozza/following{/other_user}","gists_url":"https://api.github.com/users/rozza/gists{/gist_id}","starred_url":"https://api.github.com/users/rozza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rozza/subscriptions","organizations_url":"https://api.github.com/users/rozza/orgs","repos_url":"https://api.github.com/users/rozza/repos","events_url":"https://api.github.com/users/rozza/events{/privacy}","received_events_url":"https://api.github.com/users/rozza/received_events","type":"User","site_admin":false},"body":"Normalized the test cases\r\nAdded yml file\r\nAdded SCRAM-SHA-256 test\r\n\r\nSPEC-1042 SPEC-818 DRIVERS-410 DRIVERS-439","created_at":"2018-04-09T19:00:52Z","updated_at":"2018-04-11T22:57:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8efaeeaeee1a19f1385bef4eaa00180f92d06ee4","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/mongodb/specifications/pulls/301/commits","review_comments_url":"https://api.github.com/repos/mongodb/specifications/pulls/301/comments","review_comment_url":"https://api.github.com/repos/mongodb/specifications/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mongodb/specifications/issues/301/comments","statuses_url":"https://api.github.com/repos/mongodb/specifications/statuses/30d90a448ce4409cb2291d6f20dd03e2bee8cce7","head":{"label":"rozza:s1042","ref":"s1042","sha":"30d90a448ce4409cb2291d6f20dd03e2bee8cce7","user":{"login":"rozza","id":420,"avatar_url":"https://avatars0.githubusercontent.com/u/420?v=4","gravatar_id":"","url":"https://api.github.com/users/rozza","html_url":"https://github.com/rozza","followers_url":"https://api.github.com/users/rozza/followers","following_url":"https://api.github.com/users/rozza/following{/other_user}","gists_url":"https://api.github.com/users/rozza/gists{/gist_id}","starred_url":"https://api.github.com/users/rozza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rozza/subscriptions","organizations_url":"https://api.github.com/users/rozza/orgs","repos_url":"https://api.github.com/users/rozza/repos","events_url":"https://api.github.com/users/rozza/events{/privacy}","received_events_url":"https://api.github.com/users/rozza/received_events","type":"User","site_admin":false},"repo":{"id":97122084,"name":"specifications","full_name":"rozza/specifications","owner":{"login":"rozza","id":420,"avatar_url":"https://avatars0.githubusercontent.com/u/420?v=4","gravatar_id":"","url":"https://api.github.com/users/rozza","html_url":"https://github.com/rozza","followers_url":"https://api.github.com/users/rozza/followers","following_url":"https://api.github.com/users/rozza/following{/other_user}","gists_url":"https://api.github.com/users/rozza/gists{/gist_id}","starred_url":"https://api.github.com/users/rozza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rozza/subscriptions","organizations_url":"https://api.github.com/users/rozza/orgs","repos_url":"https://api.github.com/users/rozza/repos","events_url":"https://api.github.com/users/rozza/events{/privacy}","received_events_url":"https://api.github.com/users/rozza/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rozza/specifications","description":"Specifications related to MongoDB","fork":true,"url":"https://api.github.com/repos/rozza/specifications","forks_url":"https://api.github.com/repos/rozza/specifications/forks","keys_url":"https://api.github.com/repos/rozza/specifications/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rozza/specifications/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rozza/specifications/teams","hooks_url":"https://api.github.com/repos/rozza/specifications/hooks","issue_events_url":"https://api.github.com/repos/rozza/specifications/issues/events{/number}","events_url":"https://api.github.com/repos/rozza/specifications/events","assignees_url":"https://api.github.com/repos/rozza/specifications/assignees{/user}","branches_url":"https://api.github.com/repos/rozza/specifications/branches{/branch}","tags_url":"https://api.github.com/repos/rozza/specifications/tags","blobs_url":"https://api.github.com/repos/rozza/specifications/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rozza/specifications/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rozza/specifications/git/refs{/sha}","trees_url":"https://api.github.com/repos/rozza/specifications/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rozza/specifications/statuses/{sha}","languages_url":"https://api.github.com/repos/rozza/specifications/languages","stargazers_url":"https://api.github.com/repos/rozza/specifications/stargazers","contributors_url":"https://api.github.com/repos/rozza/specifications/contributors","subscribers_url":"https://api.github.com/repos/rozza/specifications/subscribers","subscription_url":"https://api.github.com/repos/rozza/specifications/subscription","commits_url":"https://api.github.com/repos/rozza/specifications/commits{/sha}","git_commits_url":"https://api.github.com/repos/rozza/specifications/git/commits{/sha}","comments_url":"https://api.github.com/repos/rozza/specifications/comments{/number}","issue_comment_url":"https://api.github.com/repos/rozza/specifications/issues/comments{/number}","contents_url":"https://api.github.com/repos/rozza/specifications/contents/{+path}","compare_url":"https://api.github.com/repos/rozza/specifications/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rozza/specifications/merges","archive_url":"https://api.github.com/repos/rozza/specifications/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rozza/specifications/downloads","issues_url":"https://api.github.com/repos/rozza/specifications/issues{/number}","pulls_url":"https://api.github.com/repos/rozza/specifications/pulls{/number}","milestones_url":"https://api.github.com/repos/rozza/specifications/milestones{/number}","notifications_url":"https://api.github.com/repos/rozza/specifications/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rozza/specifications/labels{/name}","releases_url":"https://api.github.com/repos/rozza/specifications/releases{/id}","deployments_url":"https://api.github.com/repos/rozza/specifications/deployments","created_at":"2017-07-13T12:50:35Z","updated_at":"2018-04-09T12:46:16Z","pushed_at":"2018-04-10T09:29:29Z","git_url":"git://github.com/rozza/specifications.git","ssh_url":"git@github.com:rozza/specifications.git","clone_url":"https://github.com/rozza/specifications.git","svn_url":"https://github.com/rozza/specifications","homepage":null,"size":3428,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mongodb:master","ref":"master","sha":"190ba24046f4078c9868ac08c2a0b56d7543a581","user":{"login":"mongodb","id":45120,"avatar_url":"https://avatars1.githubusercontent.com/u/45120?v=4","gravatar_id":"","url":"https://api.github.com/users/mongodb","html_url":"https://github.com/mongodb","followers_url":"https://api.github.com/users/mongodb/followers","following_url":"https://api.github.com/users/mongodb/following{/other_user}","gists_url":"https://api.github.com/users/mongodb/gists{/gist_id}","starred_url":"https://api.github.com/users/mongodb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mongodb/subscriptions","organizations_url":"https://api.github.com/users/mongodb/orgs","repos_url":"https://api.github.com/users/mongodb/repos","events_url":"https://api.github.com/users/mongodb/events{/privacy}","received_events_url":"https://api.github.com/users/mongodb/received_events","type":"Organization","site_admin":false},"repo":{"id":19244865,"name":"specifications","full_name":"mongodb/specifications","owner":{"login":"mongodb","id":45120,"avatar_url":"https://avatars1.githubusercontent.com/u/45120?v=4","gravatar_id":"","url":"https://api.github.com/users/mongodb","html_url":"https://github.com/mongodb","followers_url":"https://api.github.com/users/mongodb/followers","following_url":"https://api.github.com/users/mongodb/following{/other_user}","gists_url":"https://api.github.com/users/mongodb/gists{/gist_id}","starred_url":"https://api.github.com/users/mongodb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mongodb/subscriptions","organizations_url":"https://api.github.com/users/mongodb/orgs","repos_url":"https://api.github.com/users/mongodb/repos","events_url":"https://api.github.com/users/mongodb/events{/privacy}","received_events_url":"https://api.github.com/users/mongodb/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mongodb/specifications","description":"Specifications related to MongoDB","fork":false,"url":"https://api.github.com/repos/mongodb/specifications","forks_url":"https://api.github.com/repos/mongodb/specifications/forks","keys_url":"https://api.github.com/repos/mongodb/specifications/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mongodb/specifications/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mongodb/specifications/teams","hooks_url":"https://api.github.com/repos/mongodb/specifications/hooks","issue_events_url":"https://api.github.com/repos/mongodb/specifications/issues/events{/number}","events_url":"https://api.github.com/repos/mongodb/specifications/events","assignees_url":"https://api.github.com/repos/mongodb/specifications/assignees{/user}","branches_url":"https://api.github.com/repos/mongodb/specifications/branches{/branch}","tags_url":"https://api.github.com/repos/mongodb/specifications/tags","blobs_url":"https://api.github.com/repos/mongodb/specifications/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mongodb/specifications/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mongodb/specifications/git/refs{/sha}","trees_url":"https://api.github.com/repos/mongodb/specifications/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mongodb/specifications/statuses/{sha}","languages_url":"https://api.github.com/repos/mongodb/specifications/languages","stargazers_url":"https://api.github.com/repos/mongodb/specifications/stargazers","contributors_url":"https://api.github.com/repos/mongodb/specifications/contributors","subscribers_url":"https://api.github.com/repos/mongodb/specifications/subscribers","subscription_url":"https://api.github.com/repos/mongodb/specifications/subscription","commits_url":"https://api.github.com/repos/mongodb/specifications/commits{/sha}","git_commits_url":"https://api.github.com/repos/mongodb/specifications/git/commits{/sha}","comments_url":"https://api.github.com/repos/mongodb/specifications/comments{/number}","issue_comment_url":"https://api.github.com/repos/mongodb/specifications/issues/comments{/number}","contents_url":"https://api.github.com/repos/mongodb/specifications/contents/{+path}","compare_url":"https://api.github.com/repos/mongodb/specifications/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mongodb/specifications/merges","archive_url":"https://api.github.com/repos/mongodb/specifications/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mongodb/specifications/downloads","issues_url":"https://api.github.com/repos/mongodb/specifications/issues{/number}","pulls_url":"https://api.github.com/repos/mongodb/specifications/pulls{/number}","milestones_url":"https://api.github.com/repos/mongodb/specifications/milestones{/number}","notifications_url":"https://api.github.com/repos/mongodb/specifications/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mongodb/specifications/labels{/name}","releases_url":"https://api.github.com/repos/mongodb/specifications/releases{/id}","deployments_url":"https://api.github.com/repos/mongodb/specifications/deployments","created_at":"2014-04-28T16:04:56Z","updated_at":"2018-04-11T21:58:00Z","pushed_at":"2018-04-11T21:57:57Z","git_url":"git://github.com/mongodb/specifications.git","ssh_url":"git@github.com:mongodb/specifications.git","clone_url":"https://github.com/mongodb/specifications.git","svn_url":"https://github.com/mongodb/specifications","homepage":null,"size":3442,"stargazers_count":111,"watchers_count":111,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":61,"mirror_url":null,"archived":false,"open_issues_count":6,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":61,"open_issues":6,"watchers":111,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mongodb/specifications/pulls/301"},"html":{"href":"https://github.com/mongodb/specifications/pull/301"},"issue":{"href":"https://api.github.com/repos/mongodb/specifications/issues/301"},"comments":{"href":"https://api.github.com/repos/mongodb/specifications/issues/301/comments"},"review_comments":{"href":"https://api.github.com/repos/mongodb/specifications/pulls/301/comments"},"review_comment":{"href":"https://api.github.com/repos/mongodb/specifications/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mongodb/specifications/pulls/301/commits"},"statuses":{"href":"https://api.github.com/repos/mongodb/specifications/statuses/30d90a448ce4409cb2291d6f20dd03e2bee8cce7"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"behackett"}}