JanusGraph服务器XML配置

时间:2018-04-02 13:50:58

标签: graph-databases tinkerpop janusgraph

任何人都知道如何配置janusgraph服务器的用户名和密码。因此,发送到此janusgraph服务器的任何http / socket都需要进行身份验证。

谢谢

1 个答案:

答案 0 :(得分:2)

JanusGraph打包TinkerPop的Gremlin服务器,因此要配置身份验证,您只需按照Gremlin Server的说明进行操作即可。基本步骤是修改服务器yaml文件以包含以下内容:

authentication: {
  authenticator: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator,
  config: {
    credentialsDb: conf/credentials.properties}}

设置"简单"使用Graph配置的本地conf/credentials.properties实例来存放用户名/密码的身份验证系统。显然,如果你喜欢并使用它,你可以写一个更高级的Authenticator - SimpleAuthenticator实际上只是一个让人们入手的参考实现。这是一个使用TinkerGraph作为凭证的目标数据库的示例:

gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
gremlin.tinkergraph.vertexIdManager=LONG
gremlin.tinkergraph.graphLocation=data/credentials.kryo
gremlin.tinkergraph.graphFormat=gryo

但显然可能是您想要使用的任何Graph

要在该图表中设置用户名和密码,您需要使用通常通过Gremlin控制台作为管理任务执行的凭据DSL。你可以这样做:

gremlin> :plugin use tinkerpop.credentials
==>tinkerpop.credentials activated
gremlin> graph = ... // create your graph instance for usernames/passwords
...
gremlin> credentials = credentials(graph)
==>CredentialGraph{graph=tinkergraph[vertices:0 edges:0]}
gremlin> credentials.createUser("stephen","password")
==>v[0]
gremlin> credentials.createUser("daniel","better-password")
==>v[3]
gremlin> credentials.createUser("marko","rainbow-dash")
==>v[6]
gremlin> credentials.findUser("marko").properties()
==>vp[password->$2a$04$lBXMnKWtLB...]
==>vp[username->marko]
gremlin> credentials.countUsers()
==>3
gremlin> credentials.removeUser("daniel")
==>1
gremlin> credentials.countUsers()
==>2

使用该配置启动Gremlin Server,并启用身份验证。

这些步骤在TinkerPop reference documentation中有更详细的描述。我建议您自己download Gremlin Server并检查预配置的" secure"具有已构建的"凭证图的配置"那个用户TinkerGraph。您可以使用以下命令运行该示例:

$ bin/gremlin-server.sh conf/gremlin-server-secure.yaml

仔细查看conf/gremlin-server-secure.yaml中的内容以及它与conf/tinkergraph-credentials.properties的关系,然后在JanusGraph Server配置中进行类似的更改。这应该让你开始。