summaryrefslogtreecommitdiffstats
path: root/net/http/http_auth_handler_ntlm.cc
diff options
context:
space:
mode:
authorcbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-21 21:38:05 +0000
committercbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-21 21:38:05 +0000
commit4fd4a6da1114c4df949d0bf0281b4ecbfbb73534 (patch)
tree0367c2b9f0a2f7f22185fbc69f2df6ccbee5f6e9 /net/http/http_auth_handler_ntlm.cc
parent7106ae5055a009e1ca53f0fc5ee6bb6b0c925c9f (diff)
downloadchromium_src-4fd4a6da1114c4df949d0bf0281b4ecbfbb73534.zip
chromium_src-4fd4a6da1114c4df949d0bf0281b4ecbfbb73534.tar.gz
chromium_src-4fd4a6da1114c4df949d0bf0281b4ecbfbb73534.tar.bz2
Added WWW-Authenticate Negotate support using shared HttpAuthSspi.
BUG=29862 TEST=None Review URL: http://codereview.chromium.org/551015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36785 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_auth_handler_ntlm.cc')
-rwxr-xr-x[-rw-r--r--]net/http/http_auth_handler_ntlm.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/net/http/http_auth_handler_ntlm.cc b/net/http/http_auth_handler_ntlm.cc
index 3dcf9b4..6e10e79 100644..100755
--- a/net/http/http_auth_handler_ntlm.cc
+++ b/net/http/http_auth_handler_ntlm.cc
@@ -15,6 +15,20 @@ std::string HttpAuthHandlerNTLM::GenerateCredentials(
const std::wstring& password,
const HttpRequestInfo* request,
const ProxyInfo* proxy) {
+#if defined(NTLM_SSPI)
+ std::string auth_credentials;
+
+ int rv = auth_sspi_.GenerateCredentials(
+ username,
+ password,
+ origin_,
+ request,
+ proxy,
+ &auth_credentials);
+ if (rv == OK)
+ return auth_credentials;
+ return std::string();
+#else // !defined(NTLM_SSPI)
// TODO(wtc): See if we can use char* instead of void* for in_buf and
// out_buf. This change will need to propagate to GetNextToken,
// GenerateType1Msg, and GenerateType3Msg, and perhaps further.
@@ -76,6 +90,7 @@ std::string HttpAuthHandlerNTLM::GenerateCredentials(
if (!ok)
return std::string();
return std::string("NTLM ") + encode_output;
+#endif
}
// The NTLM challenge header looks like:
@@ -86,6 +101,10 @@ bool HttpAuthHandlerNTLM::ParseChallenge(
scheme_ = "ntlm";
score_ = 3;
properties_ = ENCRYPTS_IDENTITY | IS_CONNECTION_BASED;
+
+#if defined(NTLM_SSPI)
+ return auth_sspi_.ParseChallenge(challenge_begin, challenge_end);
+#else
auth_data_.clear();
// Verify the challenge's auth-scheme.
@@ -103,6 +122,7 @@ bool HttpAuthHandlerNTLM::ParseChallenge(
auth_data_.assign(challenge_begin, challenge_end);
return true;
+#endif
}
} // namespace net