apache / incubator-hugegraph

A graph database that supports more than 100+ billion data, high performance and scalability (Include OLTP Engine & REST-API & Backends)
https://hugegraph.apache.org
Apache License 2.0
2.62k stars 518 forks source link

[Question] config authentication, start failed #1895

Closed yh69 closed 3 months ago

yh69 commented 2 years ago

Problem Type (问题类型)

configs (配置项 / 文档相关)

Before submit

Environment (环境信息)

Your Question (问题描述)

在配置文件gremlin-server.yaml中配置authenticator及其rest-server文件路径:

authentication: {
  authenticator: com.baidu.hugegraph.auth.ConfigAuthenticator,
  authenticationHandler: com.baidu.hugegraph.auth.WsAndHttpBasicAuthHandler,
  config: {tokens: conf/rest-server.properties}
}

在配置文件rest-server.properties中配置authenticator及其tokens信息:

auth.authenticator=com.baidu.hugegraph.auth.ConfigAuthenticator
auth.admin_token=token-value-a
auth.user_tokens=[hugegraph1:token-value-1, hugegraph2:token-value-2]

在配置文件hugegraph{n}.properties中配置gremlin.graph信息:

gremlin.graph=com.baidu.hugegraph.auth.HugeFactoryAuthProxy
2022-06-05 09:50:34 [main] [INFO] c.b.h.s.RestServer - RestServer starting...
2022-06-05 09:50:36 [main] [INFO] c.b.h.u.ConfigUtil - Scaning option 'graphs' directory './conf/graphs'
2022-06-05 09:50:36 [main] [INFO] c.b.h.s.RestServer - Graph 'hugegraph' was successfully configured via './conf/graphs/hugegraph.properties'
2022-06-05 09:50:36 [db-open-1] [INFO] c.b.h.b.s.r.RocksDBStore - Opening RocksDB with data path: ./rockdb/m
2022-06-05 09:50:36 [db-open-1] [INFO] c.b.h.b.s.r.RocksDBStore - Opening RocksDB with data path: ./rockdb/s
2022-06-05 09:50:38 [db-open-1] [INFO] c.b.h.b.s.r.RocksDBStore - Opening RocksDB with data path: ./rockdb/g
2022-06-05 09:50:38 [main] [INFO] o.c.o.l.Uns - OHC using JNA OS native malloc/free
2022-06-05 09:50:38 [main] [INFO] o.a.t.g.s.GremlinServer - Shutting down OpProcessor[]
2022-06-05 09:50:38 [main] [INFO] o.a.t.g.s.GremlinServer - Shutting down OpProcessor[session]
2022-06-05 09:50:38 [main] [INFO] o.a.t.g.s.GremlinServer - Shutting down OpProcessor[traversal]
2022-06-05 09:50:38 [main] [ERROR] c.b.h.d.HugeGraphServer - HugeRestServer start error: 
org.apache.commons.lang.NotImplementedException: AuthManager is unsupported by ConfigAuthenticator
    at com.baidu.hugegraph.auth.ConfigAuthenticator.authManager(ConfigAuthenticator.java:88) ~[hugegraph-api-0.12.0.jar:0.67.0.0]
    at com.baidu.hugegraph.core.GraphManager.startRpcServer(GraphManager.java:261) ~[hugegraph-api-0.12.0.jar:0.67.0.0]
    at com.baidu.hugegraph.core.GraphManager.<init>(GraphManager.java:103) ~[hugegraph-api-0.12.0.jar:0.67.0.0]
    at com.baidu.hugegraph.server.ApplicationConfig$GraphManagerFactory$1.onEvent(ApplicationConfig.java:112) ~[hugegraph-api-0.12.0.jar:0.67.0.0]
    at org.glassfish.jersey.server.internal.monitoring.CompositeApplicationEventListener.onEvent(CompositeApplicationEventListener.java:74) ~[jersey-server-2.25.1.jar:?]
    at org.glassfish.jersey.server.internal.monitoring.MonitoringContainerListener.onStartup(MonitoringContainerListener.java:81) ~[jersey-server-2.25.1.jar:?]
    at org.glassfish.jersey.server.ApplicationHandler.onStartup(ApplicationHandler.java:1180) ~[jersey-server-2.25.1.jar:?]
    at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.start(GrizzlyHttpContainer.java:357) ~[jersey-container-grizzly2-http-2.25.1.jar:?]
    at org.glassfish.grizzly.http.server.HttpHandlerChain.start(HttpHandlerChain.java:398) ~[grizzly-http-server-2.4.4.jar:2.4.4]
    at org.glassfish.grizzly.http.server.HttpServer.setupHttpHandler(HttpServer.java:293) ~[grizzly-http-server-2.4.4.jar:2.4.4]
    at org.glassfish.grizzly.http.server.HttpServer.start(HttpServer.java:269) ~[grizzly-http-server-2.4.4.jar:2.4.4]
    at com.baidu.hugegraph.server.RestServer.start(RestServer.java:68) ~[hugegraph-api-0.12.0.jar:0.67.0.0]
    at com.baidu.hugegraph.server.RestServer.start(RestServer.java:175) ~[hugegraph-api-0.12.0.jar:0.67.0.0]
    at com.baidu.hugegraph.dist.HugeRestServer.start(HugeRestServer.java:34) ~[hugegraph-dist-0.12.0.jar:?]
    at com.baidu.hugegraph.dist.HugeGraphServer.<init>(HugeGraphServer.java:71) ~[hugegraph-dist-0.12.0.jar:?]
    at com.baidu.hugegraph.dist.HugeGraphServer.main(HugeGraphServer.java:119) ~[hugegraph-dist-0.12.0.jar:?]
2022-06-05 09:50:38 [main] [INFO] o.a.t.g.s.GremlinServer - Shutting down thread pools.
2022-06-05 09:50:38 [gremlin-server-stop] [INFO] o.a.t.g.s.GremlinServer - Executing shutdown LifeCycleHook
2022-06-05 09:50:38 [gremlin-server-stop] [INFO] o.a.t.g.s.GremlinServer - Executed once at shutdown of Gremlin Server.
2022-06-05 09:50:40 [gremlin-server-stop] [INFO] c.b.h.HugeGraph - Close graph standardhugegraph[hugegraph]
2022-06-05 09:50:40 [gremlin-server-stop] [WARN] o.a.t.g.s.GremlinServer - Exception while closing Graph instance [hugegraph]
java.lang.IllegalStateException: Ensure tx closed in all threads when closing graph 'hugegraph'
    at com.google.common.base.Preconditions.checkState(Preconditions.java:531) ~[guava-25.1-jre.jar:?]
    at com.baidu.hugegraph.util.E.checkState(E.java:68) ~[hugegraph-common-2.0.0.jar:2.0.0.0]
    at com.baidu.hugegraph.StandardHugeGraph.close(StandardHugeGraph.java:904) ~[hugegraph-core-0.12.0.jar:0.12.0.0]
    at com.baidu.hugegraph.auth.HugeGraphAuthProxy.close(HugeGraphAuthProxy.java:535) ~[hugegraph-api-0.12.0.jar:0.67.0.0]
    at org.apache.tinkerpop.gremlin.server.GremlinServer.lambda$null$7(GremlinServer.java:298) ~[gremlin-server-3.4.3.jar:3.4.3]
    at java.util.concurrent.ConcurrentHashMap$KeySetView.forEach(ConcurrentHashMap.java:4649) ~[?:1.8.0_301]
    at org.apache.tinkerpop.gremlin.server.GremlinServer.lambda$stop$8(GremlinServer.java:295) ~[gremlin-server-3.4.3.jar:3.4.3]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_301]
2022-06-05 09:50:40 [gremlin-server-stop] [INFO] o.a.t.g.s.GremlinServer - Closed Graph instance [hugegraph]
2022-06-05 09:50:40 [gremlin-server-stop] [INFO] o.a.t.g.s.GremlinServer - Gremlin Server - shutdown complete
2022-06-05 09:50:40 [SOFA-RPC-ShutdownHook] [WARN] c.a.s.r.c.RpcRuntimeContext - SOFA RPC Framework catch JVM shutdown event, Run shutdown hook now.
2022-06-05 09:50:40 [hugegraph-shutdown] [INFO] c.b.h.HugeGraph - HugeGraph is shutting down
HugeGraphServer.java:119)

Vertex/Edge example (问题点 / 边数据举例)

No response

Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)

No response

yh69 commented 2 years ago

config authentication 模式start-hugegraph启动总失败

yh69 commented 2 years ago

fixed. close

javeme commented 2 years ago

不建议使用ConfigAuthenticator,建议使用StandardAuthenticator,请参考配置文档:https://hugegraph.apache.org/docs/config/config-authentication/

javeme commented 2 years ago

如果配置ConfigAuthenticator时,可以尝试改进以正常启动服务:

可以在this.authenticator.authManager()调用时捕获NotImplementedException异常,Log打印info后忽略此异常即可: https://github.com/apache/incubator-hugegraph/blob/2af01bc92ddfd69e654889b9f6e69a729d4f3043/hugegraph-api/src/main/java/com/baidu/hugegraph/core/GraphManager.java#L275

欢迎贡献代码~

ghost commented 2 years ago

fixed. close how to fix it ????

ghost commented 2 years ago

这是什么原因造成的?我也遇到了同样的问题,能不能不改代码的前提下修复它?

imbajin commented 2 years ago

使用 StandardAuthenticator,请参考配置文档:hugegraph.apache.org/docs/config/config-authentication

参考一下, 直接使用新版的 auth 设置就行, 有异常的那个是旧版的. 验证信息是存在本地

yh69 commented 2 years ago

fixed. close how to fix it ????

use standard authenticator, can use admin/passwd to access restserver. standard auth is powerful to do many other things on authentication.

ghost commented 2 years ago

I appreciate your help, but why they support a useless ConfigAuthenticator?