我正在使用Spring引导应用程序连接MongoDB实例。我们已在MongoDB上启用了以下角色的身份验证
角色:[ { role: "dbOwner ",db: "{{ mongo.database_name }}" }
角色:[ { role: "readWrite ",db: "{{ mongo.database_name }}" }
我们使用conf文件提供凭证
数据:
mongodb。uri:mongodb://127.0.0.1/testDB
mongodb.authentication数据库
mongodb.username: 'admin'
mongodb.password:'admin'
repositories.enabled: true
在引导应用程序时,我们正在插入特定集合。但是,在插入过程中,它尝试创建索引并失败,并出现以下异常
org.springframework.data.mongodb.UncategorizedMongoDbException:{"server用过":"localhost:27017","ok": 0.0,"errmsg":"在testDB上未授权执行命令{createIndex:\"ws.city\",索引:[{name:\"code\", ns:\"testDB.ws.city\",唯一: true, key:{code: 1 } } ] }" , "code": 13};
完整堆栈跟踪:
通过类型为[XYZRepository]的索引为0的构造函数参数表示的不满意的依赖项:创建名为“XYZRepository”的bean时出错:调用init方法失败;嵌套异常为org . spring framework . data . MongoDB . uncategorizedmongodbexception:{ " server used ":" localhost:27017 "," ok" : 0.0," errmsg ":"未授权在testDB上执行命令{ createIndexes: \"ws.city\ ",indexes: [ { name: \"code\ ",ns: \"testDB.ws.city\ ",unique: true,key:{ code:1 } } } ",code ":13 };嵌套异常为com . MongoDB . commandfailurexception:{ " server used ":" localhost:27017 "," ok" : 0.0," errmsg ":"未授权在testDB上执行命令{ createIndexes: \"ws.city\ ",索引:[ { name: \"code\ ",ns: \"testDB.ws.city\ ",unique: true,key: { code: 1 } } ] }," code ":13 };嵌套异常为org . spring framework . beans . factory . beancreationexception:创建名为“XYZRepository”的bean时出错:调用init方法失败;嵌套异常为org . spring framework . data . MongoDB . uncategorizedmongodbexception:{ " server used ":" localhost:27017 "," ok" : 0.0," errmsg ":"未授权在testDB上执行命令{ createIndexes: \"ws.city\ ",indexes: [ { name: \"code\ ",ns: \"testDB.ws.city\ ",unique: true,key:{ code:1 } } } ",code ":13 };嵌套异常为com . MongoDB . commandfailurexception:{ " server used ":" localhost:27017 "," ok" : 0.0," errmsg ":"未授权在testDB上执行命令{ createIndexes: \"ws.city\ ",indexes: [ { name: \"code\ ",ns: \"testDB.ws.city\ ",unique: true,key: { code: 1 } } ] }," code ":13 } at org . spring framework . beans . factory . support . constructore solver . createargumentarray(constructore solver . Java:70
理想情况下,我理解应用程序与mongoDB交互所需的角色应该是“readWrit”。
>
Spring在插入时是否尝试自动创建索引并且需要更高/不同的角色?
在这种情况下我们遗漏了什么?
我们使用的是mongoDB最新版本:3.2.4 Springboot 1.3.1
这个答案对我很有用,因为我是一个独立的mongo,请参阅文档,作为一个实施访问控制的独立软件。
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
尝试将身份验证数据库更改为 testdb,如 mongodb.authentication-database: testDB
。
它说要使用以下命令: 在Google Shell中,我尝试了以下操作: 我知道命令指向的是正确的文件位置。如何成功验证应用程序默认凭据?
这并不困难,但它让我质疑spring auth服务器是最好的选择,还是我应该使用Keycloak?
尝试使用主连接字符串和用户名(数据库名)连接到cosmosdb Mongo API 原因:com.mongodb.mongotieoutexception:在等待与com.mongodb.client.internal.mongoclientdelegate$1@3C291AAD匹配的服务器时,在30000 ms后超时。群集状态的客户端视图是{type=replica_set,servers=[{
我正在研究React应用程序与KeyCloak的集成。我已经在本地计算机上安装了keycloak服务器版本11.0.2。我能够访问管理登录并创建管理用户。我还使用keycloak创建了一个具有凭据的自定义客户端和用户。我的react应用程序是在我的机器的端口9000上托管的,而keycloak是在8080(默认)端口上托管的。现在,当我重定向到我的应用程序URL时,它会自动重定向到下面的URL:
我的程序编译了所有内容,我没有出错,但我实际上期望tomcat应该永久在端口8080上。输出中也没有Spring。在另一个项目中,我做的一切都很好。谢谢你帮助我。 我的父母: 我的tarter.class: 我的Starter-Pom: 控制台输出: 然后什么都不会发生了。谢谢你的帮助。
我的应用/构建。格雷德尔: 在调试模式下,我成功地完成了auth。由Firebase授权。 输入电话号码 好的。工作正常。 但当我想在发布模式下执行此操作时,我会遇到下一个错误: