Index: net/http/http_auth.h |
diff --git a/net/http/http_auth.h b/net/http/http_auth.h |
index 5a2c7ac6606e3353f4d32ab37a96b78760ba8a06..c259cf55c3f3a10bd488b62d05cb596656378a31 100644 |
--- a/net/http/http_auth.h |
+++ b/net/http/http_auth.h |
@@ -13,13 +13,12 @@ |
#include "net/base/net_export.h" |
#include "net/http/http_util.h" |
-template <class T> class scoped_refptr; |
- |
namespace net { |
class BoundNetLog; |
class HttpAuthHandler; |
class HttpAuthHandlerFactory; |
+class HttpAuthSchemeSet; |
class HttpResponseHeaders; |
// Utility class for http authentication. |
@@ -87,28 +86,19 @@ class NET_EXPORT_PRIVATE HttpAuth { |
IDENT_SRC_DEFAULT_CREDENTIALS, |
}; |
- enum Scheme { |
- AUTH_SCHEME_BASIC = 0, |
- AUTH_SCHEME_DIGEST, |
- AUTH_SCHEME_NTLM, |
- AUTH_SCHEME_NEGOTIATE, |
- AUTH_SCHEME_SPDYPROXY, |
- AUTH_SCHEME_MOCK, |
- AUTH_SCHEME_MAX, |
- }; |
- |
- // Helper structure used by HttpNetworkTransaction to track |
- // the current identity being used for authorization. |
+ // Helper structure used by HttpNetworkTransaction to track the current |
+ // identity being used for authorization. |
struct Identity { |
Identity(); |
+ ~Identity(); |
IdentitySource source; |
bool invalid; |
AuthCredentials credentials; |
}; |
- // Get the name of the header containing the auth challenge |
- // (either WWW-Authenticate or Proxy-Authenticate). |
+ // Get the name of the header containing the auth challenge (either |
+ // WWW-Authenticate or Proxy-Authenticate). |
static std::string GetChallengeHeaderName(Target target); |
// Get the name of the header where the credentials go |
@@ -119,12 +109,9 @@ class NET_EXPORT_PRIVATE HttpAuth { |
// messages. |
static std::string GetAuthTargetString(Target target); |
- // Returns a string representation of an authentication Scheme. |
- static const char* SchemeToString(Scheme scheme); |
- |
- // Iterate through the challenge headers, and pick the best one that |
- // we support. Obtains the implementation class for handling the challenge, |
- // and passes it back in |*handler|. If no supported challenge was found, |
+ // Iterate through the challenge headers, and pick the best one that we |
+ // support. Obtains the implementation class for handling the challenge, and |
+ // passes it back in |*handler|. If no supported challenge was found, |
// |*handler| is set to NULL. |
// |
// |disabled_schemes| is the set of schemes that we should not use. |
@@ -136,7 +123,7 @@ class NET_EXPORT_PRIVATE HttpAuth { |
const HttpResponseHeaders* headers, |
Target target, |
const GURL& origin, |
- const std::set<Scheme>& disabled_schemes, |
+ const HttpAuthSchemeSet& disabled_schemes, |
const BoundNetLog& net_log, |
scoped_ptr<HttpAuthHandler>* handler); |
@@ -165,8 +152,12 @@ class NET_EXPORT_PRIVATE HttpAuth { |
HttpAuthHandler* handler, |
const HttpResponseHeaders* headers, |
Target target, |
- const std::set<Scheme>& disabled_schemes, |
+ const HttpAuthSchemeSet& disabled_schemes, |
std::string* challenge_used); |
+ |
+ // RFC 7235 states that an authentication scheme is a case insensitive token. |
+ // This function checks whether |scheme| is a token AND is lowercase. |
+ static bool IsValidNormalizedScheme(const std::string& scheme); |
}; |
} // namespace net |