Skip to content

Commit

Permalink
chore(service-provider-core): parse authMechProps rather than applyin…
Browse files Browse the repository at this point in the history
…g regex

This is a slightly cleaner way of accessing authMechanismProperties.
  • Loading branch information
addaleax committed Jul 30, 2021
1 parent fb16917 commit 3e71b4f
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 23 deletions.
50 changes: 35 additions & 15 deletions packages/service-provider-core/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/service-provider-core/package.json
Expand Up @@ -32,7 +32,7 @@
"bson": "^4.4.1",
"mongodb": "addaleax/node-mongodb-native#71d4c39e5c858f49d10e840df626eca4da653e28",
"mongodb-build-info": "^1.2.0",
"mongodb-connection-string-url": "^1.0.0"
"mongodb-connection-string-url": "^1.1.0"
},
"optionalDependencies": {
"mongodb-client-encryption": "^1.2.6"
Expand Down
7 changes: 4 additions & 3 deletions packages/service-provider-core/src/uri-generator.ts
Expand Up @@ -3,7 +3,7 @@
import { CommonErrors, MongoshInvalidInputError } from '@mongosh/errors';
import i18n from '@mongosh/i18n';
import CliOptions from './cli-options';
import ConnectionString from 'mongodb-connection-string-url';
import ConnectionString, { CommaAndColonSeparatedRecord } from 'mongodb-connection-string-url';
import { DEFAULT_DB } from './index';

/**
Expand Down Expand Up @@ -53,8 +53,9 @@ function validateConflicts(options: CliOptions, connectionString?: ConnectionStr
}

if (options.gssapiServiceName && connectionString?.searchParams.has('authMechanismProperties')) {
const authProperties = connectionString.searchParams.get('authMechanismProperties') ?? '';
const serviceName = /,?SERVICE_NAME:([^,]+)/.exec(authProperties)?.[1];
const authProperties = new CommaAndColonSeparatedRecord(
connectionString.searchParams.get('authMechanismProperties'));
const serviceName = authProperties.get('SERVICE_NAME');
if (serviceName !== undefined && options.gssapiServiceName !== serviceName) {
throw new MongoshInvalidInputError(i18n.__(DIVERGING_SERVICE_NAME), CommonErrors.InvalidArgument);
}
Expand Down
26 changes: 23 additions & 3 deletions packages/service-provider-server/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/service-provider-server/package.json
Expand Up @@ -44,7 +44,7 @@
"@types/sinon-chai": "^3.2.3",
"mongodb": "addaleax/node-mongodb-native#71d4c39e5c858f49d10e840df626eca4da653e28",
"saslprep": "mongodb-js/saslprep#v1.0.4",
"mongodb-connection-string-url": "^1.0.0"
"mongodb-connection-string-url": "^1.1.0"
},
"optionalDependencies": {
"mongodb-client-encryption": "^1.2.6",
Expand Down

0 comments on commit 3e71b4f

Please sign in to comment.