mongodb - 尝试从 spring boot docker 容器连接到 mongo docker 容器时验证 MongoCredential 时出错?

标签 mongodb spring-boot docker docker-compose application.properties

我有以下 docker compose 文件,用于连接到 mongoDB 容器Spring boot 容器:

#
# APIs
#----------------------------------------------
  pokerstats:
    image: pokerstats
    container_name: pokerstats
    ports:
      - 8080:8080
    depends_on: 
      - db

#
# Utilities
#----------------------------------------------
  db:
    image: mongo
    container_name: mongo
    volumes:
      - ./database:/data
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin
      MONGO_INITDB_DATABASE: pokerStats  

在我的 spring boot application.properties 我有:

server.port=8080
spring.main.allow-bean-definition-overriding=true

spring.data.mongodb.uri=mongodb://admin:admin@mongo:27017/pokerStats
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=pokerStats

当我尝试使用 Postman 访问我的端点时,出现以下错误:

{
        "timestamp": "2020-04-07T17:39:19.129+0000",
        "status": 500,
        "error": "Internal Server Error",
        "message": "Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='pokerStats', password=<hidden>, mechanismProperties=<hidden>}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='pokerStats', password=<hidden>, mechanismProperties=<hidden>}",
        "path": "/rounds"
    }

请注意,在我将以下内容添加到我的 docker compose 文件之前,它工作正常:

 environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin
      MONGO_INITDB_DATABASE: pokerStats  

最佳答案

我能够通过添加来解决问题:

应用程序.properties:

spring.data.mongodb.uri=mongodb://admin:admin@mongo:27017/pokerStats?authSource=admin
spring.data.mongodb.authentication-database = admin
spring.data.mongodb.database=pokerStats

我相信:?authSource=admin 需要添加到 mongo uri 的末尾。

关于mongodb - 尝试从 spring boot docker 容器连接到 mongo docker 容器时验证 MongoCredential 时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61109707/

相关文章:

c# - 如何将随机与 CQRS+Event Sourcing 结合使用

node.js - Mongoose 条件必填字段验证

MongoDB 与 Solr 的集成

spring-boot - 通过 postman 发送二维字节数组(多个文件)作为多部分请求

java - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException 重复项

spring - 忽略 Jackson OnDemand 中的嵌套属性

amazon-web-services - "Invalid configuration for registry"执行时出错 "eb local run"

linux - 服务 docker 启动不起作用(守护进程),ubuntu-15.10,使用 intelliJ 运行 dockerfile

docker - Docker:如何在一个命令中运行服务和终端?

javascript - 在 Mongo 中重新加入拆分 MapReduce 数组