如何解决无法在 Gremlin 上设置简单身份验证
我们正在尝试使用 JanusGraphSimpleAuthenticator 和 HttpBasicAuthenticationHandler 以及存储在 Cassandra 密钥空间中的凭据启用简单身份验证并在 Gremlin 服务器上添加用户。
Gremlin 服务器 yaml:
authentication: {
authenticator: org.janusgraph.graphdb.tinkerpop.gremlin.server.auth.JanusGraphSimpleAuthenticator,#authenticationHandler: org.apache.tinkerpop.gremlin.server.handler.HttpBasicAuthenticationHandler,authenticationHandler: org.apache.tinkerpop.gremlin.server.handler.SaslAuthenticationHandler,config: {
defaultUsername: "atul",defaultPassword: "password123",credentialsDb: conf/janusgraph-credentials-server.properties
}
}
janusgraph-credentials-server.properties
gremlin.graph=org.janusgraph.core.JanusGraphFactory
storage.backend=cql
storage.host=127.0.0.1
storage.cql.keyspace=userslist1
GremlinServer 正常启动,但无法继续创建凭据数据库
但在创建用户时在控制台上出现此异常
-----oOOo-(3)-oOOo-----
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/janusgraph-0.5.3/lib/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/janusgraph-0.5.3/lib/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
plugin activated: janusgraph.imports
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.credentials
18:01:50 WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
plugin activated: tinkerpop.hadoop
plugin activated: tinkerpop.spark
plugin activated: tinkerpop.tinkergraph
gremlin> :remote connect tinkerpop.server conf/remote.yaml session
==>Configured localhost/127.0.0.1:8182-[67de01d1-2340-4d0d-81fc-df549884cbb5]
gremlin> :remote console
==>All scripts will now be sent to Gremlin Server - [localhost/127.0.0.1:8182]-[67de01d1-2340-4d0d-81fc-df549884cbb5] - type ':remote console' to return to local mode
gremlin> graph=JanusGraphFactory.open("conf/janusgraph-credentials-server.properties")
==>standardjanusgraph[cql:[127.0.0.1]]
gremlin> credential=credentials(graph)
No signature of method: org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.credentials() is applicable for argument types: (org.janusgraph.graphdb.database.StandardJanusGraph) values: [standardjanusgraph[cql:[127.0.0.1]]]
Type ':help' or ':h' for help.
Display stack trace? [yN]
Also observed following error on gremlin-server:
360359 [metrics-csv-reporter-thread-1] WARN com.codahale.metrics.CsvReporter - Error writing to org.apache.tinkerpop.gremlin.server.GremlinServer.op.eval
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1014)
at com.codahale.metrics.CsvReporter.report(CsvReporter.java:241)
at com.codahale.metrics.CsvReporter.reportTimer(CsvReporter.java:173)
at com.codahale.metrics.CsvReporter.report(CsvReporter.java:166)
at com.codahale.metrics.ScheduledReporter.report(ScheduledReporter.java:116)
at com.codahale.metrics.ScheduledReporter$1.run(ScheduledReporter.java:87)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
感谢有人帮助突出显示启用简单身份验证可能需要的任何其他步骤,使用 gremlin-server 3.4.6 和 cassandra。
谢谢, 阿图尔
解决方法
从上面的评论来看,我认为 Aaron 是正确的。此语法:
gremlin> credential=credentials(graph)
有 long been removed 回到 3.3.3。请在 3.4.6 here 的参考文档中找到最新的语法,但基本上如 Aaron 所述:
gremlin> credentials = graph.traversal(CredentialTraversalSource.class)
==>credentialtraversalsource[tinkergraph[vertices:0 edges:0],standard]
gremlin> credentials.user("stephen","password")
==>v[0]
gremlin> credentials.user("daniel","better-password")
==>v[3]
gremlin> credentials.user("marko","rainbow-dash")
==>v[6]
最近,在 3.4.9 中,首选如下:
gremlin> credentials = traversal(CredentialTraversalSource.class).withEmbedded(graph)
==>credentialtraversalsource[tinkergraph[vertices:0 edges:0],standard]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。