如何解决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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。