diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-03 14:46:41 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2019-05-29 20:00:09 +0200 |
commit | efe771eaaa69557cdca04bccc4502c8e31f372fa (patch) | |
tree | 61b881931ad3d0b372af13f8551f7cd989f14533 | |
parent | da67565737b564e1951b15c6b7756783c88ab438 (diff) |
Fix automatic NTLM authentication by backporting server white list support
Support --auth-server-whitelist
Read it and pass it to an HttpAuthPreference.
Change-Id: I37c23f4d777ff11b2c0480fa9c28ea6fbe029737
Task-number: QTBUG-75539
Task-number: QTBUG-57729
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
(cherry picked from commit b81d7095825cdd4f486e83894c801e596f248936)
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | src/core/profile_io_data_qt.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/core/profile_io_data_qt.cpp b/src/core/profile_io_data_qt.cpp index 63585b2c3..dd363f74d 100644 --- a/src/core/profile_io_data_qt.cpp +++ b/src/core/profile_io_data_qt.cpp @@ -48,6 +48,7 @@ #include "content/public/common/content_features.h" #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" #include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h" +#include "chrome/common/chrome_switches.h" #include "net/cert/cert_verifier.h" #include "net/cert/ct_log_verifier.h" #include "net/cert/ct_policy_enforcer.h" @@ -88,13 +89,6 @@ namespace QtWebEngineCore { -static const char* const kDefaultAuthSchemes[] = { net::kBasicAuthScheme, - net::kDigestAuthScheme, -#if QT_CONFIG(webengine_kerberos) - net::kNegotiateAuthScheme, -#endif - net::kNtlmAuthScheme }; - static bool doNetworkSessionParamsMatch(const net::HttpNetworkSession::Params &first, const net::HttpNetworkSession::Params &second) { @@ -297,8 +291,14 @@ void ProfileIODataQt::generateStorage() m_storage->set_ct_policy_enforcer(base::WrapUnique(new net::DefaultCTPolicyEnforcer())); m_storage->set_host_resolver(net::HostResolver::CreateDefaultResolver(NULL)); m_storage->set_ssl_config_service(std::make_unique<net::SSLConfigServiceDefaults>()); + if (!m_httpAuthPreferences) { + m_httpAuthPreferences.reset(new net::HttpAuthPreferences()); + std::string serverWhitelist = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kAuthServerWhitelist); + m_httpAuthPreferences->SetServerWhitelist(serverWhitelist); + } m_storage->set_http_auth_handler_factory(net::HttpAuthHandlerFactory::CreateDefault( - m_urlRequestContext->host_resolver())); + m_urlRequestContext->host_resolver(), + m_httpAuthPreferences.get())); m_storage->set_transport_security_state(std::make_unique<net::TransportSecurityState>()); if (!m_dataPath.isEmpty()) { |