// NTLM challenge token
result = HelperReply::TT;
p+=2;
+ // followed by an auth token
+ char *token = strwordtok(NULL, &p);
+ authToken.init();
+ authToken.append(token, strlen(token));
} else if (!strncmp(p,"AF ",3)) {
// NTLM/Negotate OK response
result = HelperReply::OK;
safe_free(lm_request->server_blob);
lm_request->request->flags.must_keepalive = 1;
if (lm_request->request->flags.proxy_keepalive) {
- lm_request->server_blob = xstrdup(blob);
+ lm_request->server_blob = xstrdup(reply.authToken.content());
auth_user_request->user()->credentials(Auth::Handshake);
auth_user_request->denyMessage("Authentication in progress");
- debugs(29, 4, HERE << "Need to challenge the client with a server blob '" << blob << "'");
+ debugs(29, 4, HERE << "Need to challenge the client with a server token: '" << reply.authToken << "'");
} else {
auth_user_request->user()->credentials(Auth::Failed);
- auth_user_request->denyMessage("NTLM authentication requires a persistent connection");
+ auth_user_request->denyMessage("Negotiate authentication requires a persistent connection");
}
break;
safe_free(lm_request->server_blob);
lm_request->request->flags.must_keepalive = 1;
if (lm_request->request->flags.proxy_keepalive) {
- lm_request->server_blob = xstrdup(blob);
+ lm_request->server_blob = xstrdup(reply.authToken.content());
auth_user_request->user()->credentials(Auth::Handshake);
auth_user_request->denyMessage("Authentication in progress");
- debugs(29, 4, HERE << "Need to challenge the client with a server blob '" << blob << "'");
+ debugs(29, 4, HERE << "Need to challenge the client with a server token: '" << reply.authToken << "'");
} else {
auth_user_request->user()->credentials(Auth::Failed);
auth_user_request->denyMessage("NTLM authentication requires a persistent connection");