当我将JHipster应用部署到Heroku,并连接到GrapheneDB Neo4J实例(版本3.5.17)时,该应用无法连接到Neo4J实例。我试图在本地重现这个错误,认为这与版本不匹配有关,因为本地Neo4J的Docker版本是4.0。
然而,我用任何一个版本的Neo4J,都在存在absence of credentials的情况下本地化了这个错误。
工作版本有以下内容 docker-compose.yml
文件条目。
environment:
- NEO4J_AUTH=none
而这个条目在 application.yml
:
org:
neo4j:
driver:
uri: bolt://localhost:7687
这个版本是可以连接的。一旦我引入凭证,条目是这样的。docker-compose.yml
:
environment:
- NEO4J_AUTH=myapplication/myapplication
和 application.yml
:
org:
neo4j:
driver:
uri: bolt://localhost:7687
authentication:
username: myapplication
password: myapplication
这个版本无法连接。在Spring Boot和neo4j docker镜像中设置凭证的正确方法是什么?我还遗漏了什么吗?
从我的本地机器连接到GrapheneDB实例也会出现同样的错误,所以我怀疑问题出在驱动配置上。一些搜索结果提到 org.neo4j.driver.username
而不是 org.neo4j.driver.authentication.username
但我尝试了两种方法,结果都一样。
原来我被Neo4J文档误导了,文档中说加密是默认开启的。我所需要做的就是。
org.neo4j.driver.config.encrypted=true
或组合,在YAML中。
org:
neo4j:
driver:
uri: bolt://localhost:7687
authentication:
username: myapplication
password: myapplication
config:
encrypted: true
关于完整的配置,请看: https:/neo4j.comdeveloperdriver-spring-boot-starter。