Skip to content

Commit

Permalink
avoid duplicate code.
Browse files Browse the repository at this point in the history
avoid append username and with UTF-* for hash
  • Loading branch information
arturobernalg committed Dec 5, 2023
1 parent 46a4604 commit fa714a1
Showing 1 changed file with 5 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ private String createDigestResponse(final HttpRequest request) throws Authentica


// Extract username and username*
final String username = credentials.getUserName();
String username = credentials.getUserName();
String encodedUsername = null;
// Check if 'username' has invalid characters and use 'username*'
if (username != null && containsInvalidABNFChars(username)) {
Expand All @@ -358,6 +358,7 @@ private String createDigestResponse(final HttpRequest request) throws Authentica
final String usernameRealm = username + ":" + realm;
final byte[] hashedBytes = digester.digest(usernameRealm.getBytes(StandardCharsets.UTF_8));
usernameForDigest = formatHex(hashedBytes); // Use hashed username for digest
username = usernameForDigest;
} else if (encodedUsername != null) {
usernameForDigest = encodedUsername; // Use encoded username for digest
} else {
Expand All @@ -371,13 +372,13 @@ private String createDigestResponse(final HttpRequest request) throws Authentica
// ":" unq(cnonce-value)

// calculated one per session
buffer.append(usernameForDigest).append(":").append(credentials.getUserPassword());
buffer.append(username).append(":").append(credentials.getUserPassword());
final String checksum = formatHex(digester.digest(this.buffer.toByteArray()));
buffer.reset();
buffer.append(checksum).append(":").append(nonce).append(":").append(cnonce);
} else {
// unq(username-value) ":" unq(realm-value) ":" passwd
buffer.append(usernameForDigest).append(":").append(credentials.getUserPassword());
buffer.append(username).append(":").append(credentials.getUserPassword());
}
a1 = buffer.toByteArray();

Expand Down Expand Up @@ -441,6 +442,7 @@ private String createDigestResponse(final HttpRequest request) throws Authentica
if (this.userhashSupported) {
// Use hashed username for the 'username' parameter
params.add(new BasicNameValuePair("username", usernameForDigest));
params.add(new BasicNameValuePair("userhash", "true"));
} else if (encodedUsername != null) {
// Use encoded 'username*' parameter
params.add(new BasicNameValuePair("username*", encodedUsername));
Expand All @@ -465,10 +467,6 @@ private String createDigestResponse(final HttpRequest request) throws Authentica
params.add(new BasicNameValuePair("opaque", opaque));
}

if (this.userhashSupported) {
params.add(new BasicNameValuePair("userhash", "true"));
}

for (int i = 0; i < params.size(); i++) {
final BasicNameValuePair param = params.get(i);
if (i > 0) {
Expand Down

0 comments on commit fa714a1

Please sign in to comment.