diff options
author | ahendrickson@chromium.org <ahendrickson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-02 17:27:10 +0000 |
---|---|---|
committer | ahendrickson@chromium.org <ahendrickson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-02 17:27:10 +0000 |
commit | 930cbb5855c54aedb590bc522963320c189a3e52 (patch) | |
tree | 3d579aa9a2c65210b2c3453e32a0d2991d4bf2f9 /net/http/url_security_manager_win.cc | |
parent | e457f74143dcabf0663983cb376425f121a0dc84 (diff) | |
download | chromium_src-930cbb5855c54aedb590bc522963320c189a3e52.zip chromium_src-930cbb5855c54aedb590bc522963320c189a3e52.tar.gz chromium_src-930cbb5855c54aedb590bc522963320c189a3e52.tar.bz2 |
Added command-line whitelist data to UrlSecurityManager. These are used by all platforms; Windows will use IInternetSecurityManager if they are not present.
Removed registry code from HttpAuthFilterWhitelist, as we're now using a different method of authentication on Windows.
BUG=29596
TEST=None.
Review URL: http://codereview.chromium.org/1569010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43493 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/url_security_manager_win.cc')
-rw-r--r-- | net/http/url_security_manager_win.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/net/http/url_security_manager_win.cc b/net/http/url_security_manager_win.cc index b3abb05..b3b3988 100644 --- a/net/http/url_security_manager_win.cc +++ b/net/http/url_security_manager_win.cc @@ -10,6 +10,7 @@ #include "base/scoped_comptr_win.h" #include "base/string_util.h" #include "googleurl/src/gurl.h" +#include "net/http/http_auth_filter.h" // The Windows implementation of URLSecurityManager uses WinINet/IE's // URL security zone manager. See the MSDN page "URL Security Zones" at @@ -20,7 +21,7 @@ namespace net { class URLSecurityManagerWin : public URLSecurityManager { public: - URLSecurityManagerWin(); + explicit URLSecurityManagerWin(const HttpAuthFilter* whitelist); // URLSecurityManager methods: virtual bool CanUseDefaultCredentials(const GURL& auth_origin) const; @@ -29,7 +30,8 @@ class URLSecurityManagerWin : public URLSecurityManager { ScopedComPtr<IInternetSecurityManager> security_manager_; }; -URLSecurityManagerWin::URLSecurityManagerWin() { +URLSecurityManagerWin::URLSecurityManagerWin(const HttpAuthFilter* whitelist) + : URLSecurityManager(whitelist) { HRESULT hr = CoInternetCreateSecurityManager(NULL, security_manager_.Receive(), NULL); @@ -39,6 +41,10 @@ URLSecurityManagerWin::URLSecurityManagerWin() { bool URLSecurityManagerWin::CanUseDefaultCredentials( const GURL& auth_origin) const { + // The whitelist overrides everything, if it exists. + if (whitelist_) + return whitelist_->IsValid(auth_origin, HttpAuth::AUTH_SERVER); + if (!security_manager_) { NOTREACHED(); // The code in the constructor failed. return false; @@ -94,8 +100,9 @@ bool URLSecurityManagerWin::CanUseDefaultCredentials( } // static -URLSecurityManager* URLSecurityManager::Create() { - return new URLSecurityManagerWin; +URLSecurityManager* URLSecurityManager::Create( + const HttpAuthFilter* whitelist) { + return new URLSecurityManagerWin(whitelist); } } // namespace net |