* The current request HTTP headers.
* @return The parsed challenge response.
*/
public static ChallengeResponse parseResponse(Request request,
String header, Series<Parameter> httpHeaders) {
ChallengeResponse result = null;
if (header != null) {
int space = header.indexOf(' ');
if (space != -1) {
String scheme = header.substring(0, space);
String rawValue = header.substring(space + 1);
result = new ChallengeResponse(new ChallengeScheme("HTTP_"
+ scheme, scheme));
result.setRawValue(rawValue);
}
}
if (result != null) {
// Give a chance to the authenticator helper to do further parsing
AuthenticatorHelper helper = Engine.getInstance().findHelper(
result.getScheme(), true, false);
if (helper != null) {
helper.parseResponse(result, request, httpHeaders);
} else {
Context.getCurrentLogger().warning(
"Couldn't find any helper support the "
+ result.getScheme() + " challenge scheme.");
}
}
return result;