Flapdoodle失败,并带有Spring Boot v2.3.3的“授权失败”错误

问题描述

我们正在将Spring Boot应用程序从2.2.5 / 7升级到2.3.3,并看到Flapdoodle嵌入式MongoDb的单元测试失败,并显示错误消息request fails with authentication failure message

请问有什么建议/解决办法

Spring Boot应用程序具有以下内容:

spring boot : 2.3.3
spring-boot-starter-data-mongodb : 2.3.3
mongodb-driver-core : 4.0.5
mongodb-driver-sync : 4.0.5
de.flapdoodle.embed.mongo - 2.2.0
de.flapdoodle.embed.process - 2.1.2

我们有正在执行简单CRUD操作的应用程序存储库。

测试类定义。

_@RunWith(SpringRunner.class)
@DataMongoTest
@activeprofiles({ "unit-test","integration-test"})
public class ScopeRepositoryTest {

@Autowired
private ScopeRepository scopeRepository;
private Scope scope1;

@Before
public void setup() {
    scopeRepository.deleteAll();
}
}_

当我们执行测试用例时,测试用例在启动时失败,并出现以下错误:

Thread-3] o.s.b.a.mongo.embedded.EmbeddedMongo : 2020-08-26T14:00:21.257+0530 I ACCESS [conn2] SCRAM-SHA-1 authentication failed for admin on admin from client 127.0.0.1:56763 ; UserNotFound: Could not find user admin@admin. admin/admin are username/password of local db name as admin

使用较早版本的spring boot 2.2.5 / 7和相关的mongodb软件包,它可以正常工作。

解决方法

如果嵌入式 mongo 发现正在使用的凭据(例如我的凭据在应用程序 yml 中默认具有凭据),则它会以 auth 模式启动,我使用了另一个测试 spring 配置文件并将 @ActiveProfiles("test") 添加到我的测试类中

spring:
  config:
    activate:
      on-profile: default
  data:
    mongodb:
      database: test_db
      username: adminuser
      password: adminpwd
      host: localhost
      port: 27012
---
spring:
  config:
    activate:
      on-profile: test

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...