Play-ReactiveMongo身份验证因MongoDB 3而失败

时间:2015-10-24 13:43:04

标签: mongodb play-reactivemongo

我在使用play-reactivemongo连接到MongoDB 3时遇到问题,并且遇到了"'未授权查询XXX' (代码= 13)"问题。当没有--auth启动MongoDB时,程序运行完全正常。

数据库版本应为3.0.4,如日志中所示。

libraryDependencies ++= Seq(
  "org.reactivemongo" %% "play2-reactivemongo" % "0.11.7.play24",

我使用的是版本0.11.7 play2-reactivemongo插件。

mongodb.uri = "mongodb://postsUser:12345678@localhost:27017/posts?authMode=?authMode=scram-sha1&authSource=posts&rm.tcpNoDelay=true"

我已经像这样在mongodb.uri中指定了authMode。

2015-10-24T16:41:24.977+0800 I ACCESS   [conn105] Failed to authenticate postsUser@posts with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document

我在mongodb.log中发现了以下错误。

{{1}}

为什么使用MONGODB-CR代替SCRAM-SHA-1?假设SCRAM-SHA-1应该是默认的,对吗?

2 个答案:

答案 0 :(得分:1)

在连接字符串后面添加以下内容适用于我

authMode=scram-sha1

所以最后的连接字符串是

mongodb://user:pass@ipaddress:27017/litmus?3treadPreference=primary&authMode=scram-sha1

我也有nodejs脚本连接到同一个数据库,有趣的是它连接完美而没有附加authMode=scram-sha1标志。

似乎在反应性mongo中未处理的情况

答案 1 :(得分:0)

抱歉,我在mongodb.uri中输了一个错字

authMode=?authMode=scram-sha1

并使DB使用mongodb-cr进行身份验证。但是,我在第一次访问数据库时仍然遇到“未授权查询”错误,随后的数据库访问也没问题。在mongodb.log中,我可以看到以下内容。

2015-10-25T01:28:45.242+0800 I QUERY    [conn33] assertion 13 not authorized for query on posts.posts ns:posts.posts query:{}
2015-10-25T01:28:45.247+0800 I ACCESS   [conn33] Successfully authenticated as principal postsUser on posts

明天我最好开始另一个问题。