首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gremlin-python使用uname和password连接到远程gremlin-server

使用gremlin-python使用uname和password连接到远程gremlin-server
EN

Stack Overflow用户
提问于 2019-03-30 03:22:04
回答 1查看 1.8K关注 0票数 0

我正在尝试连接到远程gremlin服务器,它需要使用gremlin_python通过ssl进行无名/密码身份验证。这是我使用的代码片段:

代码语言:javascript
复制
conf = yaml.load(stream, Loader=yaml.SafeLoader)
print(conf) 
g = traversal().withRemote(DriverRemoteConnection(**conf))

conf dict的内容是:

代码语言:javascript
复制
{'url': 'wss://my-url.com:port', 'username': 'admin', 'password': '**', 'traversal_source': 'graph_traversal'}

我可以使用conf/my.properties文件从gremlin控制台连接到相同的服务器,如下所示

代码语言:javascript
复制
  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-console连接以及通过https发送脚本。我一直在尝试查看代码here,以找出问题出在哪里。

EDIT:在深入了解这一点之后,我发现您可以使用头部中带有auth令牌的wss server进行身份验证。我能够直接用websockets测试这一点。当我为gremlin_python打开一个DriverRemoteConnection时,有没有办法在头部传递一个参数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-01 20:19:46

{{ end_point }}{{ username }}{{ password }}替换为您的实际价值:

代码语言:javascript
复制
from tornado import httpclient

my_req = httpclient.HTTPRequest('wss://{{ end_point }}:8182/gremlin', headers={"Authorization": "Token AZX ..."})

DriverRemoteConnection(my_req, 'g', username="{{ username }}", password="{{ password }}")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55424273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档