mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 23:45:44 +01:00
improve password handling
This commit is contained in:
@@ -38,6 +38,7 @@ package sonia.scm.api.rest.resources;
|
|||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
|
|
||||||
|
import sonia.scm.security.EncryptionHandler;
|
||||||
import sonia.scm.user.User;
|
import sonia.scm.user.User;
|
||||||
import sonia.scm.user.UserManager;
|
import sonia.scm.user.UserManager;
|
||||||
import sonia.scm.util.AssertUtil;
|
import sonia.scm.util.AssertUtil;
|
||||||
@@ -74,11 +75,14 @@ public class UserResource extends AbstractResource<User>
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @param userManager
|
* @param userManager
|
||||||
|
* @param encryptionHandler
|
||||||
*/
|
*/
|
||||||
@Inject
|
@Inject
|
||||||
public UserResource(UserManager userManager)
|
public UserResource(UserManager userManager,
|
||||||
|
EncryptionHandler encryptionHandler)
|
||||||
{
|
{
|
||||||
this.userManager = userManager;
|
this.userManager = userManager;
|
||||||
|
this.encryptionHandler = encryptionHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
//~--- methods --------------------------------------------------------------
|
//~--- methods --------------------------------------------------------------
|
||||||
@@ -94,6 +98,7 @@ public class UserResource extends AbstractResource<User>
|
|||||||
@Override
|
@Override
|
||||||
protected void addItem(User user) throws Exception
|
protected void addItem(User user) throws Exception
|
||||||
{
|
{
|
||||||
|
encryptPassword(user);
|
||||||
userManager.create(user);
|
userManager.create(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,6 +135,10 @@ public class UserResource extends AbstractResource<User>
|
|||||||
AssertUtil.assertIsNotNull(o);
|
AssertUtil.assertIsNotNull(o);
|
||||||
user.setPassword(o.getPassword());
|
user.setPassword(o.getPassword());
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
encryptPassword(user);
|
||||||
|
}
|
||||||
|
|
||||||
userManager.modify(user);
|
userManager.modify(user);
|
||||||
}
|
}
|
||||||
@@ -214,8 +223,29 @@ public class UserResource extends AbstractResource<User>
|
|||||||
return PATH_PART;
|
return PATH_PART;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//~--- methods --------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method description
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
*/
|
||||||
|
private void encryptPassword(User user)
|
||||||
|
{
|
||||||
|
String password = user.getPassword();
|
||||||
|
|
||||||
|
if (Util.isNotEmpty(password))
|
||||||
|
{
|
||||||
|
user.setPassword(encryptionHandler.encrypt(password));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//~--- fields ---------------------------------------------------------------
|
//~--- fields ---------------------------------------------------------------
|
||||||
|
|
||||||
|
/** Field description */
|
||||||
|
private EncryptionHandler encryptionHandler;
|
||||||
|
|
||||||
/** Field description */
|
/** Field description */
|
||||||
private UserManager userManager;
|
private UserManager userManager;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user