summaryrefslogtreecommitdiffstats
path: root/net/http/http_auth.cc
diff options
context:
space:
mode:
authorcbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-13 13:31:17 +0000
committercbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-13 13:31:17 +0000
commit547fc79ddbed132ba12797c4f0e0aeecd3b63b8f (patch)
tree618e14cd18540b93815df91ffd01bd245d3691b4 /net/http/http_auth.cc
parent1597bafcf13b29051d16debae1d561b385550572 (diff)
downloadchromium_src-547fc79ddbed132ba12797c4f0e0aeecd3b63b8f.zip
chromium_src-547fc79ddbed132ba12797c4f0e0aeecd3b63b8f.tar.gz
chromium_src-547fc79ddbed132ba12797c4f0e0aeecd3b63b8f.tar.bz2
Cleanup: Use AUTH_SCHEME enum instead of a string.
BUG=None TEST=trybots Review URL: http://codereview.chromium.org/6191001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71318 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_auth.cc')
-rw-r--r--net/http/http_auth.cc42
1 files changed, 34 insertions, 8 deletions
diff --git a/net/http/http_auth.cc b/net/http/http_auth.cc
index e7002cf..552d245 100644
--- a/net/http/http_auth.cc
+++ b/net/http/http_auth.cc
@@ -26,7 +26,7 @@ void HttpAuth::ChooseBestChallenge(
const HttpResponseHeaders* headers,
Target target,
const GURL& origin,
- const std::set<std::string>& disabled_schemes,
+ const std::set<Scheme>& disabled_schemes,
const BoundNetLog& net_log,
scoped_ptr<HttpAuthHandler>* handler) {
DCHECK(http_auth_handler_factory);
@@ -47,7 +47,7 @@ void HttpAuth::ChooseBestChallenge(
continue;
}
if (cur.get() && (!best.get() || best->score() < cur->score()) &&
- (disabled_schemes.find(cur->scheme()) == disabled_schemes.end()))
+ (disabled_schemes.find(cur->auth_scheme()) == disabled_schemes.end()))
best.swap(cur);
}
handler->swap(best);
@@ -58,15 +58,16 @@ HttpAuth::AuthorizationResult HttpAuth::HandleChallengeResponse(
HttpAuthHandler* handler,
const HttpResponseHeaders* headers,
Target target,
- const std::set<std::string>& disabled_schemes,
+ const std::set<Scheme>& disabled_schemes,
std::string* challenge_used) {
DCHECK(handler);
DCHECK(headers);
DCHECK(challenge_used);
challenge_used->clear();
- const std::string& current_scheme = handler->scheme();
+ HttpAuth::Scheme current_scheme = handler->auth_scheme();
if (disabled_schemes.find(current_scheme) != disabled_schemes.end())
return HttpAuth::AUTHORIZATION_RESULT_REJECT;
+ std::string current_scheme_name = SchemeToString(current_scheme);
const std::string header_name = GetChallengeHeaderName(target);
void* iter = NULL;
std::string challenge;
@@ -74,7 +75,7 @@ HttpAuth::AuthorizationResult HttpAuth::HandleChallengeResponse(
HttpAuth::AUTHORIZATION_RESULT_INVALID;
while (headers->EnumerateHeader(&iter, header_name, &challenge)) {
HttpAuth::ChallengeTokenizer props(challenge.begin(), challenge.end());
- if (!LowerCaseEqualsASCII(props.scheme(), current_scheme.c_str()))
+ if (!LowerCaseEqualsASCII(props.scheme(), current_scheme_name.c_str()))
continue;
authorization_result = handler->HandleAnotherChallenge(&props);
if (authorization_result != HttpAuth::AUTHORIZATION_RESULT_INVALID) {
@@ -151,9 +152,34 @@ std::string HttpAuth::GetAuthorizationHeaderName(Target target) {
}
// static
-std::string HttpAuth::GetAuthTargetString(
- HttpAuth::Target target) {
- return target == HttpAuth::AUTH_PROXY ? "proxy" : "server";
+std::string HttpAuth::GetAuthTargetString(Target target) {
+ switch (target) {
+ case AUTH_PROXY:
+ return "proxy";
+ case AUTH_SERVER:
+ return "server";
+ default:
+ NOTREACHED();
+ return "";
+ }
+}
+
+// static
+const char* HttpAuth::SchemeToString(Scheme scheme) {
+ static const char* const kSchemeNames[] = {
+ "basic",
+ "digest",
+ "ntlm",
+ "negotiate",
+ "mock",
+ };
+ COMPILE_ASSERT(arraysize(kSchemeNames) == AUTH_SCHEME_MAX,
+ http_auth_scheme_names_incorrect_size);
+ if (scheme < AUTH_SCHEME_BASIC || scheme >= AUTH_SCHEME_MAX) {
+ NOTREACHED();
+ return "invalid_scheme";
+ }
+ return kSchemeNames[scheme];
}
} // namespace net