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

Unified Diff: chrome/browser/io_thread.cc

Issue 3199002: --auth-schemes specifies which authentication schemes are supported on the co... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 4 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
« no previous file with comments | « no previous file | chrome/common/chrome_switches.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/io_thread.cc
===================================================================
--- chrome/browser/io_thread.cc (revision 56586)
+++ chrome/browser/io_thread.cc (working copy)
@@ -24,7 +24,6 @@
#include "net/base/net_util.h"
#include "net/http/http_auth_filter.h"
#include "net/http/http_auth_handler_factory.h"
-#include "net/http/http_auth_handler_negotiate.h"
namespace {
@@ -245,63 +244,35 @@
net::HttpAuthHandlerFactory* IOThread::CreateDefaultAuthHandlerFactory(
net::HostResolver* resolver) {
- net::HttpAuthFilterWhitelist* auth_filter = NULL;
+ const CommandLine& command_line = *CommandLine::ForCurrentProcess();
// Get the whitelist information from the command line, create an
// HttpAuthFilterWhitelist, and attach it to the HttpAuthHandlerFactory.
- const CommandLine& command_line = *CommandLine::ForCurrentProcess();
-
+ net::HttpAuthFilterWhitelist* auth_filter = NULL;
if (command_line.HasSwitch(switches::kAuthServerWhitelist)) {
std::string auth_server_whitelist =
command_line.GetSwitchValueASCII(switches::kAuthServerWhitelist);
-
// Create a whitelist filter.
auth_filter = new net::HttpAuthFilterWhitelist();
auth_filter->SetWhitelist(auth_server_whitelist);
}
-
- // Set the flag that enables or disables the Negotiate auth handler.
- static const bool kNegotiateAuthEnabledDefault = true;
-
- bool negotiate_auth_enabled = kNegotiateAuthEnabledDefault;
- if (command_line.HasSwitch(switches::kExperimentalEnableNegotiateAuth)) {
- std::string enable_negotiate_auth = command_line.GetSwitchValueASCII(
- switches::kExperimentalEnableNegotiateAuth);
- // Enabled if no value, or value is 'true'. Disabled otherwise.
- negotiate_auth_enabled =
- enable_negotiate_auth.empty() ||
- (StringToLowerASCII(enable_negotiate_auth) == "true");
- }
-
- net::HttpAuthHandlerRegistryFactory* registry_factory =
- net::HttpAuthHandlerFactory::CreateDefault();
-
globals_->url_security_manager.reset(
net::URLSecurityManager::Create(auth_filter));
- // Add the security manager to the auth factories that need it.
- registry_factory->SetURLSecurityManager("ntlm",
- globals_->url_security_manager.get());
- registry_factory->SetURLSecurityManager("negotiate",
- globals_->url_security_manager.get());
- if (negotiate_auth_enabled) {
- // Configure the Negotiate settings for the Kerberos SPN.
- // TODO(cbentzel): Read the related IE registry settings on Windows builds.
- // TODO(cbentzel): Ugly use of static_cast here.
- net::HttpAuthHandlerNegotiate::Factory* negotiate_factory =
- static_cast<net::HttpAuthHandlerNegotiate::Factory*>(
- registry_factory->GetSchemeFactory("negotiate"));
- DCHECK(negotiate_factory);
- negotiate_factory->set_host_resolver(resolver);
- if (command_line.HasSwitch(switches::kDisableAuthNegotiateCnameLookup))
- negotiate_factory->set_disable_cname_lookup(true);
- if (command_line.HasSwitch(switches::kEnableAuthNegotiatePort))
- negotiate_factory->set_use_port(true);
- } else {
- // Disable the Negotiate authentication handler.
- registry_factory->RegisterSchemeFactory("negotiate", NULL);
- }
- return registry_factory;
+ // Determine which schemes are supported.
+ std::string csv_auth_schemes = "basic,digest,ntlm,negotiate";
+ if (command_line.HasSwitch(switches::kAuthSchemes))
+ csv_auth_schemes = StringToLowerASCII(
+ command_line.GetSwitchValueASCII(switches::kAuthSchemes));
+ std::vector<std::string> supported_schemes;
+ SplitString(csv_auth_schemes, ',', &supported_schemes);
+
+ return net::HttpAuthHandlerRegistryFactory::Create(
+ supported_schemes,
+ globals_->url_security_manager.get(),
+ resolver,
+ command_line.HasSwitch(switches::kDisableAuthNegotiateCnameLookup),
+ command_line.HasSwitch(switches::kEnableAuthNegotiatePort));
}
void IOThread::InitNetworkPredictorOnIOThread(
« no previous file with comments | « no previous file | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698