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

Unified Diff: net/http/url_security_manager.h

Issue 1414313002: Allow dynamic updating of authentication policies (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to cbentzel@'s comments. Created 5 years 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 | « net/http/mock_allow_url_security_manager.cc ('k') | net/http/url_security_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/url_security_manager.h
diff --git a/net/http/url_security_manager.h b/net/http/url_security_manager.h
index c0d93a23296cd0510dd839073b1ed2b028ab6b48..d851b370b4f349fcd6d8be9b3938d7ce80afe5b5 100644
--- a/net/http/url_security_manager.h
+++ b/net/http/url_security_manager.h
@@ -17,32 +17,30 @@ class HttpAuthFilter;
// The URL security manager controls the policies (allow, deny, prompt user)
// regarding URL actions (e.g., sending the default credentials to a server).
-class NET_EXPORT URLSecurityManager {
+class NET_EXPORT_PRIVATE URLSecurityManager {
public:
URLSecurityManager() {}
virtual ~URLSecurityManager() {}
// Creates a platform-dependent instance of URLSecurityManager.
//
- // |whitelist_default| is the whitelist of servers that default credentials
- // can be used with during NTLM or Negotiate authentication. If
- // |whitelist_default| is NULL and the platform is Windows, it indicates
+ // A security manager has two whitelists, a "default whitelist" that is a
+ // whitelist of servers with which default credentials can be used, and a
+ // "delegate whitelist" that is the whitelist of servers that are allowed to
+ // have delegated Kerberos tickets.
+ //
+ // On creation both whitelists are NULL.
+ //
+ // If the default whitelist is NULL and the platform is Windows, it indicates
// that security zone mapping should be used to determine whether default
- // credentials sxhould be used. If |whitelist_default| is NULL and the
+ // credentials should be used. If the default whitelist is NULL and the
// platform is non-Windows, it indicates that no servers should be
// whitelisted.
//
- // |whitelist_delegate| is the whitelist of servers that are allowed
- // to have Delegated Kerberos tickets. If |whitelist_delegate| is NULL,
- // no servers can have delegated Kerberos tickets.
- //
- // Both |whitelist_default| and |whitelist_delegate| will be owned by
- // the created URLSecurityManager.
+ // If the delegate whitelist is NULL no servers can have delegated Kerberos
+ // tickets.
//
- // TODO(cbentzel): Perhaps it's better to make a non-abstract HttpAuthFilter
- // and just copy into the URLSecurityManager?
- static URLSecurityManager* Create(const HttpAuthFilter* whitelist_default,
- const HttpAuthFilter* whitelist_delegate);
+ static URLSecurityManager* Create();
// Returns true if we can send the default credentials to the server at
// |auth_origin| for HTTP NTLM or Negotiate authentication.
@@ -52,20 +50,30 @@ class NET_EXPORT URLSecurityManager {
// |auth_origin| for HTTP Negotiate authentication.
virtual bool CanDelegate(const GURL& auth_origin) const = 0;
+ virtual void SetDefaultWhitelist(
+ scoped_ptr<HttpAuthFilter> whitelist_default) = 0;
+ virtual void SetDelegateWhitelist(
+ scoped_ptr<HttpAuthFilter> whitelist_delegate) = 0;
+
private:
DISALLOW_COPY_AND_ASSIGN(URLSecurityManager);
};
class URLSecurityManagerWhitelist : public URLSecurityManager {
public:
- // The URLSecurityManagerWhitelist takes ownership of the whitelists.
- URLSecurityManagerWhitelist(const HttpAuthFilter* whitelist_default,
- const HttpAuthFilter* whitelist_delegation);
+ URLSecurityManagerWhitelist();
~URLSecurityManagerWhitelist() override;
// URLSecurityManager methods.
bool CanUseDefaultCredentials(const GURL& auth_origin) const override;
bool CanDelegate(const GURL& auth_origin) const override;
+ void SetDefaultWhitelist(
+ scoped_ptr<HttpAuthFilter> whitelist_default) override;
+ void SetDelegateWhitelist(
+ scoped_ptr<HttpAuthFilter> whitelist_delegate) override;
+
+ protected:
+ bool HasDefaultWhitelist() const;
private:
scoped_ptr<const HttpAuthFilter> whitelist_default_;
« no previous file with comments | « net/http/mock_allow_url_security_manager.cc ('k') | net/http/url_security_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698