OLD | NEW |
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" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 HttpAuthHandlerRegistryFactory* registry_factory = | 49 HttpAuthHandlerRegistryFactory* registry_factory = |
50 new HttpAuthHandlerRegistryFactory(); | 50 new HttpAuthHandlerRegistryFactory(); |
51 registry_factory->RegisterSchemeFactory( | 51 registry_factory->RegisterSchemeFactory( |
52 "basic", new HttpAuthHandlerBasic::Factory()); | 52 "basic", new HttpAuthHandlerBasic::Factory()); |
53 registry_factory->RegisterSchemeFactory( | 53 registry_factory->RegisterSchemeFactory( |
54 "digest", new HttpAuthHandlerDigest::Factory()); | 54 "digest", new HttpAuthHandlerDigest::Factory()); |
55 | 55 |
56 #if defined(USE_KERBEROS) | 56 #if defined(USE_KERBEROS) |
57 HttpAuthHandlerNegotiate::Factory* negotiate_factory = | 57 HttpAuthHandlerNegotiate::Factory* negotiate_factory = |
58 new HttpAuthHandlerNegotiate::Factory(); | 58 new HttpAuthHandlerNegotiate::Factory(); |
59 #if defined(OS_POSIX) | 59 #if defined(OS_POSIX) && !defined(OS_ANDROID) |
60 negotiate_factory->set_library(new GSSAPISharedLibrary(std::string())); | 60 negotiate_factory->set_library(new GSSAPISharedLibrary(std::string())); |
61 #elif defined(OS_WIN) | 61 #elif defined(OS_WIN) |
62 negotiate_factory->set_library(new SSPILibraryDefault()); | 62 negotiate_factory->set_library(new SSPILibraryDefault()); |
63 #endif | 63 #endif |
64 negotiate_factory->set_host_resolver(host_resolver); | 64 negotiate_factory->set_host_resolver(host_resolver); |
65 registry_factory->RegisterSchemeFactory("negotiate", negotiate_factory); | 65 registry_factory->RegisterSchemeFactory("negotiate", negotiate_factory); |
66 #endif // defined(USE_KERBEROS) | 66 #endif // defined(USE_KERBEROS) |
67 | 67 |
68 HttpAuthHandlerNTLM::Factory* ntlm_factory = | 68 HttpAuthHandlerNTLM::Factory* ntlm_factory = |
69 new HttpAuthHandlerNTLM::Factory(); | 69 new HttpAuthHandlerNTLM::Factory(); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 } | 124 } |
125 return it->second; | 125 return it->second; |
126 } | 126 } |
127 | 127 |
128 // static | 128 // static |
129 HttpAuthHandlerRegistryFactory* HttpAuthHandlerRegistryFactory::Create( | 129 HttpAuthHandlerRegistryFactory* HttpAuthHandlerRegistryFactory::Create( |
130 const std::vector<std::string>& supported_schemes, | 130 const std::vector<std::string>& supported_schemes, |
131 URLSecurityManager* security_manager, | 131 URLSecurityManager* security_manager, |
132 HostResolver* host_resolver, | 132 HostResolver* host_resolver, |
133 const std::string& gssapi_library_name, | 133 const std::string& gssapi_library_name, |
| 134 const std::string& auth_android_negotiate_account_type, |
134 bool negotiate_disable_cname_lookup, | 135 bool negotiate_disable_cname_lookup, |
135 bool negotiate_enable_port) { | 136 bool negotiate_enable_port) { |
136 HttpAuthHandlerRegistryFactory* registry_factory = | 137 HttpAuthHandlerRegistryFactory* registry_factory = |
137 new HttpAuthHandlerRegistryFactory(); | 138 new HttpAuthHandlerRegistryFactory(); |
138 if (IsSupportedScheme(supported_schemes, "basic")) | 139 if (IsSupportedScheme(supported_schemes, "basic")) |
139 registry_factory->RegisterSchemeFactory( | 140 registry_factory->RegisterSchemeFactory( |
140 "basic", new HttpAuthHandlerBasic::Factory()); | 141 "basic", new HttpAuthHandlerBasic::Factory()); |
141 if (IsSupportedScheme(supported_schemes, "digest")) | 142 if (IsSupportedScheme(supported_schemes, "digest")) |
142 registry_factory->RegisterSchemeFactory( | 143 registry_factory->RegisterSchemeFactory( |
143 "digest", new HttpAuthHandlerDigest::Factory()); | 144 "digest", new HttpAuthHandlerDigest::Factory()); |
144 if (IsSupportedScheme(supported_schemes, "ntlm")) { | 145 if (IsSupportedScheme(supported_schemes, "ntlm")) { |
145 HttpAuthHandlerNTLM::Factory* ntlm_factory = | 146 HttpAuthHandlerNTLM::Factory* ntlm_factory = |
146 new HttpAuthHandlerNTLM::Factory(); | 147 new HttpAuthHandlerNTLM::Factory(); |
147 ntlm_factory->set_url_security_manager(security_manager); | 148 ntlm_factory->set_url_security_manager(security_manager); |
148 #if defined(OS_WIN) | 149 #if defined(OS_WIN) |
149 ntlm_factory->set_sspi_library(new SSPILibraryDefault()); | 150 ntlm_factory->set_sspi_library(new SSPILibraryDefault()); |
150 #endif | 151 #endif |
151 registry_factory->RegisterSchemeFactory("ntlm", ntlm_factory); | 152 registry_factory->RegisterSchemeFactory("ntlm", ntlm_factory); |
152 } | 153 } |
153 #if defined(USE_KERBEROS) | 154 #if defined(USE_KERBEROS) |
154 if (IsSupportedScheme(supported_schemes, "negotiate")) { | 155 if (IsSupportedScheme(supported_schemes, "negotiate")) { |
155 HttpAuthHandlerNegotiate::Factory* negotiate_factory = | 156 HttpAuthHandlerNegotiate::Factory* negotiate_factory = |
156 new HttpAuthHandlerNegotiate::Factory(); | 157 new HttpAuthHandlerNegotiate::Factory(); |
157 #if defined(OS_POSIX) | 158 #if defined(OS_ANDROID) |
| 159 negotiate_factory->set_account_type(auth_android_negotiate_account_type); |
| 160 #elif defined(OS_POSIX) |
158 negotiate_factory->set_library( | 161 negotiate_factory->set_library( |
159 new GSSAPISharedLibrary(gssapi_library_name)); | 162 new GSSAPISharedLibrary(gssapi_library_name)); |
160 #elif defined(OS_WIN) | 163 #elif defined(OS_WIN) |
161 negotiate_factory->set_library(new SSPILibraryDefault()); | 164 negotiate_factory->set_library(new SSPILibraryDefault()); |
162 #endif | 165 #endif |
163 negotiate_factory->set_url_security_manager(security_manager); | 166 negotiate_factory->set_url_security_manager(security_manager); |
164 DCHECK(host_resolver || negotiate_disable_cname_lookup); | 167 DCHECK(host_resolver || negotiate_disable_cname_lookup); |
165 negotiate_factory->set_host_resolver(host_resolver); | 168 negotiate_factory->set_host_resolver(host_resolver); |
166 negotiate_factory->set_disable_cname_lookup(negotiate_disable_cname_lookup); | 169 negotiate_factory->set_disable_cname_lookup(negotiate_disable_cname_lookup); |
167 negotiate_factory->set_use_port(negotiate_enable_port); | 170 negotiate_factory->set_use_port(negotiate_enable_port); |
(...skipping 22 matching lines...) Expand all Loading... |
190 if (it == factory_map_.end()) { | 193 if (it == factory_map_.end()) { |
191 handler->reset(); | 194 handler->reset(); |
192 return ERR_UNSUPPORTED_AUTH_SCHEME; | 195 return ERR_UNSUPPORTED_AUTH_SCHEME; |
193 } | 196 } |
194 DCHECK(it->second); | 197 DCHECK(it->second); |
195 return it->second->CreateAuthHandler(challenge, target, origin, reason, | 198 return it->second->CreateAuthHandler(challenge, target, origin, reason, |
196 digest_nonce_count, net_log, handler); | 199 digest_nonce_count, net_log, handler); |
197 } | 200 } |
198 | 201 |
199 } // namespace net | 202 } // namespace net |
OLD | NEW |