in client/src/main/java/org/apache/ahc/auth/DigestScheme.java [176:208]
public String authenticate(Credentials credentials, HttpRequestMessage request)
throws AuthenticationException {
LOG.trace("enter DigestScheme.authenticate(Credentials, HttpMethod)");
UsernamePasswordCredentials usernamepassword = null;
try {
usernamepassword = (UsernamePasswordCredentials) credentials;
} catch (ClassCastException e) {
throw new InvalidCredentialsException(
"Credentials cannot be used for digest authentication: "
+ credentials.getClass().getName());
}
getParameters().put("methodname", request.getRequestMethod().name());
StringBuffer buffer = new StringBuffer(request.getPath());
String query = request.getUrl().getQuery();
if (query != null) {
if (query.indexOf("?") != 0) {
buffer.append("?");
}
buffer.append(request.getQuery());
}
getParameters().put("uri", buffer.toString());
String charset = getParameter("charset");
if (charset == null) {
getParameters().put("charset", request.getCredentialCharset());
}
String digest = createDigest(
usernamepassword.getUserName(),
usernamepassword.getPassword());
return "Digest " + createDigestHeader(usernamepassword.getUserName(),
digest);
}