Według dokumentacji format identyfikatora URI parametrów połączenia to:
mongodb://[username:example@sqldat.com]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
/database część jest opisana jako:
Skonfigurowałeś identyfikator URI w następujący sposób:
spring.data.mongodb.uri = mongodb://content_rw:<secret password>@a.mongo.db:27017,b.mongo.db:27017,c.mongo.db:27017/contenttest?wtimeoutMS=300&connectTimeoutMS=500&socketTimeoutMS=200
W Twoich logach możemy zobaczyć linię:
Exception authenticating MongoCredential{mechanism=null, userName='content_rw', source='contenttest', password=<hidden>, mechanismProperties={}}
W MongoCredential.java source jest opisany jako:
Wygląda więc na to, że skonfigurowałeś bazę danych uwierzytelniania jako /contenttest a nie jako:
spring.data.mongodb.authentication-database=admin
Myślę, że powinieneś usunąć nazwę bazy danych z identyfikatora URI i prawdopodobnie spring.data.mongodb.authentication-database właściwość, ponieważ admin baza danych jest używana domyślnie.
Spójrz też na to:
Ten wiersz powinien być interesujący z punktu widzenia konfiguracji bazy danych aplikacji:
spring.data.mongodb.database=test # Database name.
