Chromium Code Reviews| Index: net/http/http_auth_sspi_win.cc |
| diff --git a/net/http/http_auth_sspi_win.cc b/net/http/http_auth_sspi_win.cc |
| index c935d33a7c2e8b570a6305a6fb750f4180cc4226..104b71b76a7182aedfca30ff1f7bcf7e53b6aaf8 100644 |
| --- a/net/http/http_auth_sspi_win.cc |
| +++ b/net/http/http_auth_sspi_win.cc |
| @@ -13,7 +13,7 @@ |
| #include "base/strings/utf_string_conversions.h" |
| #include "net/base/net_errors.h" |
| #include "net/http/http_auth.h" |
| -#include "net/http/http_auth_challenge_tokenizer.h" |
| +#include "net/http/http_auth_handler_negotiate_parse.h" |
| namespace net { |
| @@ -282,37 +282,19 @@ void HttpAuthSSPI::ResetSecurityContext() { |
| HttpAuth::AuthorizationResult HttpAuthSSPI::ParseChallenge( |
| HttpAuthChallengeTokenizer* tok) { |
| - // Verify the challenge's auth-scheme. |
| - if (!base::LowerCaseEqualsASCII(tok->scheme(), |
| - base::StringToLowerASCII(scheme_).c_str())) |
| - return HttpAuth::AUTHORIZATION_RESULT_INVALID; |
| - |
| - std::string encoded_auth_token = tok->base64_param(); |
| - if (encoded_auth_token.empty()) { |
| - // If a context has already been established, an empty challenge |
| - // should be treated as a rejection of the current attempt. |
| - if (SecIsValidHandle(&ctxt_)) |
| - return HttpAuth::AUTHORIZATION_RESULT_REJECT; |
| - DCHECK(decoded_server_auth_token_.empty()); |
| - return HttpAuth::AUTHORIZATION_RESULT_ACCEPT; |
| + if (!SecIsValidHandle(&ctxt_)) { |
| + return net::ParseFirstNegotiateChallenge(scheme_, tok); |
| } else { |
|
Ryan Sleevi
2015/06/29 13:56:45
no else after return
aberent
2015/07/02 21:13:37
Done.
|
| - // If a context has not already been established, additional tokens should |
| - // not be present in the auth challenge. |
| - if (!SecIsValidHandle(&ctxt_)) |
| - return HttpAuth::AUTHORIZATION_RESULT_INVALID; |
| + std::string encoded_auth_token; |
| + return net::ParseAnotherNegotiateChallenge( |
| + scheme_, tok, &encoded_auth_token, &decoded_server_auth_token_); |
| } |
| - |
| - std::string decoded_auth_token; |
| - bool base64_rv = base::Base64Decode(encoded_auth_token, &decoded_auth_token); |
| - if (!base64_rv) |
| - return HttpAuth::AUTHORIZATION_RESULT_INVALID; |
| - decoded_server_auth_token_ = decoded_auth_token; |
| - return HttpAuth::AUTHORIZATION_RESULT_ACCEPT; |
| } |
| int HttpAuthSSPI::GenerateAuthToken(const AuthCredentials* credentials, |
| const std::string& spn, |
| - std::string* auth_token) { |
| + std::string* auth_token, |
| + const CompletionCallback& /*callback*/) { |
| // Initial challenge. |
| if (!SecIsValidHandle(&cred_)) { |
| int rv = OnFirstRound(credentials); |