Java 使用.credential builder时,Spring MongoDb配置失败

Java 使用.credential builder时,Spring MongoDb配置失败,java,spring,mongodb,spring-data-mongodb,Java,Spring,Mongodb,Spring Data Mongodb,我试图将Spring配置为与MongoDB一起工作,如果使用生成器中的.credential选项,我会遇到错误,但是如果直接将凭据添加到连接字符串中,则不会出现错误。这是我的密码: @Override protected MongoClientSettings mongoClientSettings() { //ConnectionString connectionString = new ConnectionString("mongodb+srv://cluster0.som

我试图将Spring配置为与MongoDB一起工作,如果使用生成器中的
.credential
选项,我会遇到错误,但是如果直接将凭据添加到连接字符串中,则不会出现错误。这是我的密码:

@Override
protected MongoClientSettings mongoClientSettings() {
    //ConnectionString connectionString = new ConnectionString("mongodb+srv://cluster0.some.mongodb.net/someDB?retryWrites=true&w=majority");
    ConnectionString connectionString = new ConnectionString("mongodb+srv://someUser:somePassword@cluster0.some.mongodb.net/someDB?retryWrites=true&w=majority");

    return MongoClientSettings.builder()
            .applyConnectionString(connectionString)
            //.credential(MongoCredential.createCredential("someUser", "someDB", "somePassword".toCharArray()))
            .build();
}

未注释的代码工作得很好,但是如果我尝试使用注释部分中的凭据并使用更简单的注释连接字符串,则会出现身份验证失败。解决方案必须非常简单,但我无法理解或找到好的示例。

我使用的是Spring boot 2.3.11和Mongo/Maas 4.2.11

下面是java中mongodb连接的代码

如果对您或任何人有效,请向上投票:)

将fongo与databaseName一起注入MongoTemplate

@Bean
public MongoTemplate mongoTemplate() throws Exception {
    return new MongoTemplate( mongo().getObject(),databaseName);
}

最后在连接字符串中添加
&authSource=someDB
,并进行检查。对于MongoDB v4.2.8和Java驱动程序4.2.0,从Java应用程序连接到服务器的两种方法都可以正常工作。@不幸的是,这两种方法都不起作用
@Bean
public MongoTemplate mongoTemplate() throws Exception {
    return new MongoTemplate( mongo().getObject(),databaseName);
}