[New] Allow to pass password encoding in REST API Request

This commit is contained in:
Robert von Burg 2019-03-14 10:08:47 +01:00
parent d15d351b70
commit edac05f9d8
2 changed files with 13 additions and 2 deletions

View File

@ -80,7 +80,13 @@ public class AuthenticationService {
String passwordEncoded = login.get("password").getAsString();
byte[] decode = Base64.getDecoder().decode(passwordEncoded);
String passwordString = new String(decode);
String passwordString;
if (login.has("encoding") && !login.get("encoding").getAsString().isEmpty()) {
passwordString = new String(decode, login.get("encoding").getAsString());
} else {
passwordString = new String(decode);
}
char[] password = passwordString.toCharArray();
if (password.length < 3) {
logger.error("Authentication failed: Password was not given or is too short!");

View File

@ -280,7 +280,12 @@ public class PrivilegeUsersService {
String passwordEncoded = jsonObject.get("password").getAsString();
byte[] decode = Base64.getDecoder().decode(passwordEncoded);
String passwordString = new String(decode);
String passwordString;
if (jsonObject.has("encoding") && !jsonObject.get("encoding").getAsString().isEmpty()) {
passwordString = new String(decode, jsonObject.get("encoding").getAsString());
} else {
passwordString = new String(decode);
}
ServiceHandler svcHandler = RestfulStrolchComponent.getInstance().getComponent(ServiceHandler.class);
PrivilegeSetUserPasswordService svc = new PrivilegeSetUserPasswordService();