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

Side by Side Diff: net/http/http_auth_handler_factory.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: Narrower dependencies, update comments, address review comments. 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_auth_handler_factory.h" 5 #include "net/http/http_auth_handler_factory.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "net/base/net_errors.h" 9 #include "net/base/net_errors.h"
10 #include "net/http/http_auth_challenge_tokenizer.h" 10 #include "net/http/http_auth_challenge_tokenizer.h"
11 #include "net/http/http_auth_filter.h" 11 #include "net/http/http_auth_filter.h"
12 #include "net/http/http_auth_handler_basic.h" 12 #include "net/http/http_auth_handler_basic.h"
13 #include "net/http/http_auth_handler_digest.h" 13 #include "net/http/http_auth_handler_digest.h"
14 #include "net/http/http_auth_handler_ntlm.h" 14 #include "net/http/http_auth_handler_ntlm.h"
15 #include "net/http/http_auth_preferences.h" 15 #include "net/http/http_auth_preferences.h"
16 #include "net/http/http_auth_scheme.h" 16 #include "net/http/http_auth_scheme.h"
17 #include "net/ssl/ssl_info.h"
17 18
18 #if defined(USE_KERBEROS) 19 #if defined(USE_KERBEROS)
19 #include "net/http/http_auth_handler_negotiate.h" 20 #include "net/http/http_auth_handler_negotiate.h"
20 #endif 21 #endif
21 22
22 namespace net { 23 namespace net {
23 24
24 int HttpAuthHandlerFactory::CreateAuthHandlerFromString( 25 int HttpAuthHandlerFactory::CreateAuthHandlerFromString(
25 const std::string& challenge, 26 const std::string& challenge,
26 HttpAuth::Target target, 27 HttpAuth::Target target,
28 const SSLInfo& ssl_info,
27 const GURL& origin, 29 const GURL& origin,
28 const BoundNetLog& net_log, 30 const BoundNetLog& net_log,
29 scoped_ptr<HttpAuthHandler>* handler) { 31 scoped_ptr<HttpAuthHandler>* handler) {
30 HttpAuthChallengeTokenizer props(challenge.begin(), challenge.end()); 32 HttpAuthChallengeTokenizer props(challenge.begin(), challenge.end());
31 return CreateAuthHandler(&props, target, origin, CREATE_CHALLENGE, 1, 33 return CreateAuthHandler(&props, target, ssl_info, origin, CREATE_CHALLENGE,
32 net_log, handler); 34 1, net_log, handler);
33 } 35 }
34 36
35 int HttpAuthHandlerFactory::CreatePreemptiveAuthHandlerFromString( 37 int HttpAuthHandlerFactory::CreatePreemptiveAuthHandlerFromString(
36 const std::string& challenge, 38 const std::string& challenge,
37 HttpAuth::Target target, 39 HttpAuth::Target target,
38 const GURL& origin, 40 const GURL& origin,
39 int digest_nonce_count, 41 int digest_nonce_count,
40 const BoundNetLog& net_log, 42 const BoundNetLog& net_log,
41 scoped_ptr<HttpAuthHandler>* handler) { 43 scoped_ptr<HttpAuthHandler>* handler) {
42 HttpAuthChallengeTokenizer props(challenge.begin(), challenge.end()); 44 HttpAuthChallengeTokenizer props(challenge.begin(), challenge.end());
43 return CreateAuthHandler(&props, target, origin, CREATE_PREEMPTIVE, 45 SSLInfo null_ssl_info;
44 digest_nonce_count, net_log, handler); 46 return CreateAuthHandler(&props, target, null_ssl_info, origin,
47 CREATE_PREEMPTIVE, digest_nonce_count, net_log,
48 handler);
45 } 49 }
46 50
47 namespace { 51 namespace {
48 52
49 const char* const kDefaultAuthSchemes[] = {kBasicAuthScheme, kDigestAuthScheme, 53 const char* const kDefaultAuthSchemes[] = {kBasicAuthScheme, kDigestAuthScheme,
50 #if defined(USE_KERBEROS) && !defined(OS_ANDROID) 54 #if defined(USE_KERBEROS) && !defined(OS_ANDROID)
51 kNegotiateAuthScheme, 55 kNegotiateAuthScheme,
52 #endif 56 #endif
53 kNtlmAuthScheme}; 57 kNtlmAuthScheme};
54 58
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 registry_factory->set_http_auth_preferences(prefs); 158 registry_factory->set_http_auth_preferences(prefs);
155 for (auto& factory_entry : registry_factory->factory_map_) { 159 for (auto& factory_entry : registry_factory->factory_map_) {
156 factory_entry.second->set_http_auth_preferences(prefs); 160 factory_entry.second->set_http_auth_preferences(prefs);
157 } 161 }
158 return registry_factory; 162 return registry_factory;
159 } 163 }
160 164
161 int HttpAuthHandlerRegistryFactory::CreateAuthHandler( 165 int HttpAuthHandlerRegistryFactory::CreateAuthHandler(
162 HttpAuthChallengeTokenizer* challenge, 166 HttpAuthChallengeTokenizer* challenge,
163 HttpAuth::Target target, 167 HttpAuth::Target target,
168 const SSLInfo& ssl_info,
164 const GURL& origin, 169 const GURL& origin,
165 CreateReason reason, 170 CreateReason reason,
166 int digest_nonce_count, 171 int digest_nonce_count,
167 const BoundNetLog& net_log, 172 const BoundNetLog& net_log,
168 scoped_ptr<HttpAuthHandler>* handler) { 173 scoped_ptr<HttpAuthHandler>* handler) {
169 std::string scheme = challenge->scheme(); 174 std::string scheme = challenge->scheme();
170 if (scheme.empty()) { 175 if (scheme.empty()) {
171 handler->reset(); 176 handler->reset();
172 return ERR_INVALID_RESPONSE; 177 return ERR_INVALID_RESPONSE;
173 } 178 }
174 std::string lower_scheme = base::ToLowerASCII(scheme); 179 std::string lower_scheme = base::ToLowerASCII(scheme);
175 FactoryMap::iterator it = factory_map_.find(lower_scheme); 180 FactoryMap::iterator it = factory_map_.find(lower_scheme);
176 if (it == factory_map_.end()) { 181 if (it == factory_map_.end()) {
177 handler->reset(); 182 handler->reset();
178 return ERR_UNSUPPORTED_AUTH_SCHEME; 183 return ERR_UNSUPPORTED_AUTH_SCHEME;
179 } 184 }
180 DCHECK(it->second); 185 DCHECK(it->second);
181 return it->second->CreateAuthHandler(challenge, target, origin, reason, 186 return it->second->CreateAuthHandler(challenge, target, ssl_info, origin,
182 digest_nonce_count, net_log, handler); 187 reason, digest_nonce_count, net_log,
188 handler);
183 } 189 }
184 190
185 } // namespace net 191 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698