diff options
author | cbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-21 21:38:05 +0000 |
---|---|---|
committer | cbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-21 21:38:05 +0000 |
commit | 4fd4a6da1114c4df949d0bf0281b4ecbfbb73534 (patch) | |
tree | 0367c2b9f0a2f7f22185fbc69f2df6ccbee5f6e9 /net/http/http_auth_handler_ntlm.cc | |
parent | 7106ae5055a009e1ca53f0fc5ee6bb6b0c925c9f (diff) | |
download | chromium_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.cc | 20 |
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 |