Проверка подлинности SASL в виде простого текста в gremlin-javascript - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь подключиться к серверу Gremlin с вариантом драйвера JavaScript.

До версии пакета 2.7.0 это легко сделать, передав параметры Gremlin.createClient(), как в в этом примере для Azure Cosmos DB:

const client = Gremlin.createClient(
  config.port, 
  config.endpoint, 
  { 
    "session": false, 
    "ssl": true, 
    "user": `/dbs/${config.database}/colls/${config.collection}`,
    "password": config.primaryKey
  }
);

В более новых версиях пакета я не могу это сделать. Официальные документы предлагают использовать gremlin.driver.auth.PlainTextSaslAuthenticator. Однако этот метод, по-видимому, не реализован в пакете и возвращает TypeError: Cannot read property 'PlainTextSaslAuthenticator' of undefined

Мой тестовый код (тот же config.js, что и в рабочем примере):

const gremlin = require("gremlin");
const config = require("./config");

const Graph = gremlin.structure.Graph;
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;

const graph = new Graph();

const authenticator = new gremlin.driver.auth.PlainTextSaslAuthenticator(
  `/dbs/${config.database}/colls/${config.collection}`,
  config.primaryKey
);

const g = graph.traversal().withRemote(new DriverRemoteConnection(`ws://${config.endpoint}:${config.port}`, { authenticator });

Return:

C:\repos\gremlin-test\index.js:9
const authenticator = new gremlin.driver.auth.PlainTextSaslAuthenticator(
                                          ^

TypeError: Cannot read property 'PlainTextSaslAuthenticator' of undefined
    at Object.<anonymous> (C:\repos\gremlin-test\index.js:9:47)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

Кто-нибудь знает решение этой проблемы?

1 Ответ

0 голосов
/ 10 сентября 2018

У меня не так уж много опыта работы с Gremlin.js, но я только что скачал его и вручную проверил все его файлы - я не могу найти никаких следов функции PlainTextSaslAuthenticator или ее объявления.

Это может означать одно из двух трех -

  1. Его функция была (случайно) удалена
  2. Используется сторонний пакет, который был (случайно) удален
  3. Он еще не был добавлен в пакет

При быстром поиске в Google я нашел эту ссылку , которая, кажется, показывает, что она добавляется к /lib/driver/auth, но этот каталог, кажется, не существует в пакете, который я получил через npm install gremlin.Возможно, он еще не выпущен?

Поэтому я бы посоветовал вам поднять проблему на Github, но кажется, что связанный вами репозиторий не позволяет поднимать проблемы.Так, возможно, по электронной почте / свяжитесь с автором?

РЕДАКТИРОВАТЬ:

Благодаря Стивен за ссылку - код не был объединен сПакет еще.Следите за этим здесь .

...