Я пытаюсь подключиться к удаленному серверу gremlin, который требует аутентификации uname / password по ssl с использованием gremlin_python
. Это фрагмент кода, который я использую:
conf = yaml.load(stream, Loader=yaml.SafeLoader)
print(conf)
g = traversal().withRemote(DriverRemoteConnection(**conf))
Содержимое conf dict:
{'url': 'wss://my-url.com:port', 'username': 'admin', 'password': '**', 'traversal_source': 'graph_traversal'}
Я могу подключиться к тому же серверу из консоли gremlin, используя файл conf / my.properties, который выглядит как
hosts: [my-url.com]
port: port
username: admin
password: *
connectionPool: { enableSsl: true }
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }}
Мои попытки подключиться из python приводят к E tornado.httpclient.HTTPError: HTTP 502: Bad Gateway
. Я знаю, что мой URL-адрес соединения правильный, я могу подключиться с консоли gremlin, а также отправлять сценарии через https. Я пытался посмотреть на код здесь , чтобы выяснить, что происходит не так.
[EDIT:] Посмотрев на это немного глубже, я понял, что вы можете аутентифицироваться с помощью wss server
с токеном аутентификации в заголовке. Я смог проверить это непосредственно с помощью websockets
. Есть ли способ передать параметр в заголовке, когда я открываю DriverRemoteConnection
для gremlin_python?