Spring Boot连接Docker部署的Neo4j遇认证异常求助
解决Spring Boot连接Docker部署的Neo4j时的认证错误
你遇到的AuthenticationException核心原因是Neo4j服务端的认证状态与客户端的认证配置不匹配,结合你的环境配置,可通过以下步骤修复:
1. 为Docker中的Neo4j设置固定初始密码
Neo4j 4.x默认启用认证,未指定密码时容器会生成随机密码,导致你配置的password无效。修改docker-compose.yml,添加环境变量设置固定密码:
version: '3.1' services: neo4j: image: neo4j:4.1.9 container_name: neo4j-container ports: - "7474:7474" - "7687:7687" environment: - NEO4J_AUTH=neo4j/password
修改后重启容器:
docker-compose down && docker-compose up -d
2. 修正Spring Boot的Neo4j配置属性
Spring Boot 3.x中,Neo4j官方推荐使用spring.neo4j前缀配置,旧前缀spring.data.neo4j可能存在兼容性问题,修改application.yaml:
spring: neo4j: uri: bolt://localhost:7687 authentication: username: neo4j password: password
3. 适配Neo4j Driver与服务端版本
Spring Boot 3.1默认依赖Neo4j Driver 5.x,而你的Neo4j服务端是4.1.9,Driver 5.x与Neo4j 4.x存在认证机制兼容性差异。在pom.xml中指定兼容的Driver版本:
<properties> <java.version>17</java.version> <neo4j-java-driver.version>4.4.11</neo4j-java-driver.version> </properties>
验证步骤
- 访问
http://localhost:7474,用账号neo4j、密码password登录Neo4j浏览器,确认能正常进入 - 重启Spring Boot应用,测试连接是否正常
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

