VOMongoRepository не удается подключиться к репликационному набору MongoDB с учетными данными пользователя (Pharo / Voyage) - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь сохранить корневой объект (MyDocument) в mongoDB с включенной аутентификацией и набором ReplicaSet, состоящим из 3 узлов (как вставлено в mongoUrls)

С этим звонком: (VOMongoRepository mongoUrls: {'127.0.0.1:27017' . '127.0.0.1:27018' . '127.0.0.1:27019'} database: 'myDB' username: 'myUser' password: 'myPass') enableReplication

Я получаю VOMongoConnectionError без более подробной информации.

Попытка сделать то же самое с этим:

VOMongoRepository mongoUrls: {'myUser:myPass@127.0.0.1:27017/?replicaSet=myRepl' } database: 'myDB'

Затем я получаю VOMongoError "не авторизован для запроса на myDB.MyDocument"

Учетные данные дважды проверяются клиентом mongo и Compass, а также разрешениями на чтение / запись (на самом деле роль dbOwner).

Интересно, что мой testDocumentLifeCycle может создать объект и отправить сообщение для сохранения, которое возвращается без сообщения об ошибке, хотя и не создает документ в MongoDB. Но затем selectOne: возвращает ошибку VOMongoError:

| doc | MyDocument new identity: 'me@there.com'; save. user := MyDocument selectOne: [ :each | each identity = 'me@there.com'].

Просто упомяну: вышеописанный тест для класса MyDocument работал с автономным mongod без включенной аутентификации. Единственное, что изменилось, это хранилище.

Так что я делаю не так?

1 Ответ

0 голосов
/ 31 октября 2018

На самом деле есть ошибка в части replicaSet VoyageMongo. Он не использует предоставленные учетные данные. Это было отправлено в https://github.com/pharo-nosql/voyage/issues/104

...