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_; |