diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java index 88c87a8e81a4c95175d01a36449c56edb1bf4484..6db7ecb648800687e1ceb12cb2e1b3706d6ebe2c 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserServlet.java @@ -99,34 +99,31 @@ public class UserServlet extends HttpServlet { user.setSalt(Base64.encodeBase64String(salt)); user.setRealm("LOCAL"); user.setUserType(AuthenticationSourceType.LOCAL); - if(userAuthenticationModule.createUser(user.getUserType(),user.getRealm(),nameServer,user)){ + if(userAuthenticationModule.createUser(user.getUserType(),user.getRealm(),nameServer,user)) { HashMap<String,String> statusInfo = new HashMap<>(); statusInfo.put("password", pw); resp.getOutputStream().write(JsonStream.serialize(statusInfo).getBytes()); - resp.setStatus(200); - return; - } - } - resp.sendError(500,"Could not create a user successfully!"); } //Update user data. @Override @ScopedServletMethod(securityGroups = {AccessLevel.ADMIN}) protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String username = req.getParameter("username"); + final JSONObject obj = new JSONObject(req.getReader().lines().collect(Collectors.joining(System.lineSeparator()))); + String pw = obj.getString("password"); + String username = obj.getString("username"); //Check if he is AD/LDAP - then return a 403, because we can't set such password. if(dataStore.getUserDao().getObjects(null).get(0).getUserType() != AuthenticationSourceType.LOCAL){ resp.sendError(500,"The user is not a local user, therefore we cannot change his data!"); return; } StatementList update = new StatementList(); - StatementElement st0 = new StatementElement("password","=",PasswordUtil.hashPassword(req.getParameter("password"), Base64.decodeBase64(dataStore.getUserDao().getObjects(null).get(0).getSalt())),""); + StatementElement st0 = new StatementElement("password","=",PasswordUtil.hashPassword(pw, Base64.decodeBase64(dataStore.getUserDao().getObjects(null).get(0).getSalt())),""); update.addStatement(st0); StatementList constraint = new StatementList(); StatementElement st1 = new StatementElement("username","=",username,"");