如何在java中更新MongoDB的密码

时间:2016-06-24 09:28:40

标签: java mongodb

和我一样有困难  试图从代码 - >

更新mongo中现有用户的密码
 public static byte[] getPassword(String value) {
    try {
        return MessageDigest.getInstance("SHA-512").digest(value.getBytes("UTF-8"));
    } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
        throw new RuntimeException(e);
    }
}

如果我想阅读我使用的表中的数据 - > <>

public static User findByUsernameAndPassword(String username, String password) {
    return users().findOne("{username: #, shaPassword: #}", username.toLowerCase(), getSha512(password)).as(User.class);
}

我尝试编写更新代码,例如 - &gt;

public Update update() {
  return users().update("{shaPassword: #}",getPassword(password)); 
}

但是从上面查询我是否给出了输入    {     &#34;用户名&#34; :&#34; admin&#34;,     &#34;密码&#34;:&#34;密码1&#34; }  从上面输入它正在更新密码,但如果我输入用户名,那么它就是在创建新用户。 我没有找到合适的解决方案。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

// create user
db.createRole({role:'sysadmin',roles:[], privileges:[{resource:{anyResource:true},actions:['anyAction']}]})
db.createUser({user: "root",  pwd: "abcd1234",  roles: [ { role: "sysadmin", db: "admin" } ] } );
db.system.users.find();

// modify passowrd
db.updateUser("root",  {pwd: "abcde12345"} );
db.system.users.find();