使用MongoCredential进行Mongodb身份验证

时间:2014-05-16 20:11:32

标签: mongodb authentication grails

我有一个grails应用程序,其中我使用db.authenticate作为登录页面,但我知道这个方法已被弃用,因此我想升级我的应用程序以使用MongoCredential对象进行身份验证。但是,与db.authenticate不同,它很好地返回一个布尔值来完成身份验证,MongoCredential不会返回一个布尔值,所以我怎么能以最小的头痛完成代码替换。理想情况下,我想得到某种布尔值来告诉我是否实现了身份验证。谢谢你的耐心。我是Mongodb的新手。

这是我需要替换的代码的一部分,目前使用已弃用的方法“authenticate”:

MongoClient mongoClient = new MongoClient("localhost", 27017)
            DB db = mongoClient.getDB("twcdb");
            def userName = params.username
            def passWord = params.password
//deprecated method being used in the line below.
            boolean auth = db.authenticate(userName, passWord.toCharArray())                

            if (auth) {
                userloggedin = params.username
                render(contentType: 'text/json') {
                    [success: true, url: createLink(controller: 'admin', action: 'loggedin')]
                }
            }
            else {
                render(contentType: 'text/json') { 
                    ["success": false, "message": 'Login or Password is incorrect.']
                }

编辑:我知道答案必须在于以某种方式测试MongoClient对象的属性以查看它是否包含有效的经过身份验证的连接,但我仍然坚持如何执行此操作。鉴于我故意用一个伪造的MongoCredential来提供MongoClient构造函数,它仍然会创建一个非null的对象。我打赌空测试但没有快乐。那么,如何替换已弃用的db.authenticate?

0 个答案:

没有答案