Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(481)

Unified Diff: net/http/http_auth.cc

Issue 1408433006: Support tls-server-end-point channel bindings for HTTP authentication. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/http/http_auth.cc
diff --git a/net/http/http_auth.cc b/net/http/http_auth.cc
index f17b5022f2fe4612a16682c3820a4a5c675300be..685c487d00aa5ae6665691064e9342ad89e9bdaf 100644
--- a/net/http/http_auth.cc
+++ b/net/http/http_auth.cc
@@ -15,6 +15,7 @@
#include "net/http/http_auth_scheme.h"
#include "net/http/http_request_headers.h"
#include "net/http/http_response_headers.h"
+#include "net/http/http_response_info.h"
#include "net/http/http_util.h"
namespace net {
@@ -24,13 +25,14 @@ HttpAuth::Identity::Identity() : source(IDENT_SRC_NONE), invalid(true) {}
// static
void HttpAuth::ChooseBestChallenge(
HttpAuthHandlerFactory* http_auth_handler_factory,
- const HttpResponseHeaders* headers,
+ const HttpResponseInfo& response_info,
Target target,
const GURL& origin,
const std::set<Scheme>& disabled_schemes,
const BoundNetLog& net_log,
scoped_ptr<HttpAuthHandler>* handler) {
DCHECK(http_auth_handler_factory);
+ DCHECK(response_info.headers.get());
DCHECK(handler->get() == NULL);
// Choose the challenge whose authentication handler gives the maximum score.
@@ -38,10 +40,11 @@ void HttpAuth::ChooseBestChallenge(
const std::string header_name = GetChallengeHeaderName(target);
std::string cur_challenge;
size_t iter = 0;
- while (headers->EnumerateHeader(&iter, header_name, &cur_challenge)) {
+ while (response_info.headers->EnumerateHeader(&iter, header_name,
+ &cur_challenge)) {
scoped_ptr<HttpAuthHandler> cur;
int rv = http_auth_handler_factory->CreateAuthHandlerFromString(
- cur_challenge, target, origin, net_log, &cur);
+ cur_challenge, target, response_info, origin, net_log, &cur);
if (rv != OK) {
VLOG(1) << "Unable to create AuthHandler. Status: "
<< ErrorToString(rv) << " Challenge: " << cur_challenge;
@@ -57,12 +60,12 @@ void HttpAuth::ChooseBestChallenge(
// static
HttpAuth::AuthorizationResult HttpAuth::HandleChallengeResponse(
HttpAuthHandler* handler,
- const HttpResponseHeaders* headers,
+ const HttpResponseInfo& response_info,
Target target,
const std::set<Scheme>& disabled_schemes,
std::string* challenge_used) {
DCHECK(handler);
- DCHECK(headers);
+ DCHECK(response_info.headers.get());
DCHECK(challenge_used);
challenge_used->clear();
HttpAuth::Scheme current_scheme = handler->auth_scheme();
@@ -74,7 +77,8 @@ HttpAuth::AuthorizationResult HttpAuth::HandleChallengeResponse(
std::string challenge;
HttpAuth::AuthorizationResult authorization_result =
HttpAuth::AUTHORIZATION_RESULT_INVALID;
- while (headers->EnumerateHeader(&iter, header_name, &challenge)) {
+ while (
+ response_info.headers->EnumerateHeader(&iter, header_name, &challenge)) {
HttpAuthChallengeTokenizer props(challenge.begin(), challenge.end());
if (!base::LowerCaseEqualsASCII(props.scheme(),
current_scheme_name.c_str()))

Powered by Google App Engine
This is Rietveld 408576698