mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-07 13:41:21 +00:00
GUACAMOLE-1391 Add support for hashing passwords with SHA-256 in user-mapping.xml
This commit is contained in:
@@ -46,7 +46,12 @@ public class Authorization {
|
||||
/**
|
||||
* Password hashed with MD5.
|
||||
*/
|
||||
MD5
|
||||
MD5,
|
||||
|
||||
/**
|
||||
* Passwords hashed with SHA256.
|
||||
*/
|
||||
SHA_256
|
||||
|
||||
}
|
||||
|
||||
@@ -205,6 +210,19 @@ public class Authorization {
|
||||
throw new UnsupportedOperationException("Unexpected lack of MD5 support.", e);
|
||||
}
|
||||
|
||||
case SHA_256:
|
||||
|
||||
try {
|
||||
MessageDigest digest = MessageDigest.getInstance("SHA-256");
|
||||
String hashedPassword = getHexString(digest.digest(password.getBytes("UTF-8")));
|
||||
return hashedPassword.equals(this.password.toUpperCase());
|
||||
}
|
||||
catch (UnsupportedEncodingException e) {
|
||||
throw new UnsupportedOperationException("Unexpected lack of UTF-8 support.", e);
|
||||
}
|
||||
catch (NoSuchAlgorithmException e) {
|
||||
throw new UnsupportedOperationException("Unexpected lack of SHA-256 support.", e);
|
||||
}
|
||||
}
|
||||
|
||||
} // end validation check
|
||||
|
@@ -73,6 +73,10 @@ public class AuthorizeTagHandler implements TagHandler {
|
||||
if (encoding.equals("md5"))
|
||||
authorization.setEncoding(Authorization.Encoding.MD5);
|
||||
|
||||
// If "sha256" use SHA-256 hash
|
||||
else if (encoding.equals("sha256"))
|
||||
authorization.setEncoding(Authorization.Encoding.SHA_S56);
|
||||
|
||||
// If "plain", use plain text
|
||||
else if (encoding.equals("plain"))
|
||||
authorization.setEncoding(Authorization.Encoding.PLAIN_TEXT);
|
||||
|
Reference in New Issue
Block a user