【发布时间】:2021-03-09 12:44:07
【问题描述】:
我们正在尝试启用简单的身份验证,并使用 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 启用简单身份验证可能需要的任何其他步骤,请不胜感激。
谢谢, 阿图尔
【问题讨论】:
-
确保还使用
storage.username和storage.password定义您的Cassandra 凭据。 -
另外,
credential=credentials(graph)是有效的 Gremlin 命令吗?如果您正在尝试构建本地credential图表,我想您应该运行这个:credential = graph.traversal()。 -
嗨 Aaron,我尝试在我的凭据服务器属性中设置用户名和密码,但仍然遇到同样的错误。实际上我认为我需要使用 credential = credentials(graph) 因为我正在尝试创建凭据图,我希望我可以在其中为特定图配置用户。但是在开始创建凭证图时仍然遇到上述错误。
标签: cassandra gremlin janusgraph gremlin-server