我在 Jruby 1.6.7 下运行的 Rails 应用程序中使用 Jmongo 1.1.5 我正在尝试连接到启用身份验证的 mongodb 实例。使用 db.auth('user', 'pass') 从 mongo CLI 工具执行此操作没有任何问题。
在我的 Jruby 应用程序中,我这样连接:
client = Mongo::Connection.new
db = client.db('my_database')
db.authenticate('user', 'pass')
当服务器不使用 --auth 运行时,我以这种方式使用 mongo 没有问题。#authenticate 调用始终返回具有有效凭据的 false。进一步挖掘,我发现在 gems/jmongo-1.1.5/lib/jmongo/db.rb 中捕获并吃掉了一个异常:
caught in authenticate: user: cannot convert instance of class
org.jruby.RubyString to
class [C lib/jmongo/db.rb:50:in `authenticate'
(我破解了 gem 的 db.rb 以查看异常)
有没有人见过这样的东西?