和我一样有困难 试图从代码 - >
更新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; } 从上面输入它正在更新密码,但如果我输入用户名,那么它就是在创建新用户。 我没有找到合适的解决方案。 请帮帮我。
答案 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();