Ошибка аутентификации MongoCredential при попытке подключения из контейнера с начальной загрузкой docker к контейнеру mon go docker? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть следующий docker compose файл для Spring boot container, который подключается к mongoDB container:

#
# 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  

В моей весенней загрузке 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

Когда я пытаюсь поразить свою конечную точку с помощью Почтальона, я получаю следующую ошибку:

{
        "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 файл для создания:

 environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin
      MONGO_INITDB_DATABASE: pokerStats  

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Мне удалось решить проблему, добавив:

application.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 необходимо добавить в конец пн go ури.

0 голосов
/ 09 апреля 2020

Ваше сообщение об ошибке указывает, что authSource - pokerStats. Но пользователь создается в базе данных администратора, в соответствии с this , который я нашел с помощью this .

Итак, я предполагаю, что эта конфигурация неверна:

spring.data.mongodb.authentication-database=admin

Я не знаком с данными о пружине, поэтому не знаю, как правильно это настроить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...