Github user jorgebay commented on a diff in the pull request:
https://github.com/apache/tinkerpop/pull/889#discussion_r209620249
--- Diff:
gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/auth/sasl-authenticator.js
---
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+'use strict';
+
+const Authenticator = require('./authenticator');
+
+class SaslAuthenticator extends Authenticator {
+ /**
+ * Creates a new instance of SaslAuthenticator.
+ * @param {Object} [options] The authentication options.
+ * @param {Object} [options.mechanism] The mechanism to be used for
authentication.
+ * @constructor
+ */
+ constructor(options) {
+ super(options);
+
+ if (options.mechanism === null || options.mechanism === undefined) {
+ throw new Error('No Sasl Mechanism Specified');
+ }
+ }
+
+ /**
+ * Evaluates the challenge from the server and returns appropriate
response.
+ * @param {String} challenge Challenge string presented by the server.
+ * @return {Object} A Promise that resolves to a valid sasl response
object.
+ */
+ evaluateChallenge(challenge) {
+ return
Promise.resolve(this._options.mechanism.evaluateChallenge(challenge));
--- End diff --
I think we should not use `Promise.resolve()` here, we should rely on the
return value of the mechanism (a `Promise`).
---