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

Side by Side Diff: net/http/http_auth.h

Issue 28144: Implement the NTLM authentication scheme by porting... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Final upload before checkin Created 11 years, 9 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/http/des_unittest.cc ('k') | net/http/http_auth.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_HTTP_HTTP_AUTH_H_ 5 #ifndef NET_HTTP_HTTP_AUTH_H_
6 #define NET_HTTP_HTTP_AUTH_H_ 6 #define NET_HTTP_HTTP_AUTH_H_
7 7
8 #include "base/ref_counted.h" 8 #include "base/ref_counted.h"
9 #include "net/http/http_util.h" 9 #include "net/http/http_util.h"
10 10
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 IDENT_SRC_EXTERNAL, 46 IDENT_SRC_EXTERNAL,
47 }; 47 };
48 48
49 // Helper structure used by HttpNetworkTransaction to track 49 // Helper structure used by HttpNetworkTransaction to track
50 // the current identity being used for authorization. 50 // the current identity being used for authorization.
51 struct Identity { 51 struct Identity {
52 Identity() : source(IDENT_SRC_NONE), invalid(true) { } 52 Identity() : source(IDENT_SRC_NONE), invalid(true) { }
53 53
54 IdentitySource source; 54 IdentitySource source;
55 bool invalid; 55 bool invalid;
56 // TODO(wtc): |username| and |password| should be string16.
56 std::wstring username; 57 std::wstring username;
57 std::wstring password; 58 std::wstring password;
58 }; 59 };
59 60
60 // Get the name of the header containing the auth challenge 61 // Get the name of the header containing the auth challenge
61 // (either WWW-Authenticate or Proxy-Authenticate). 62 // (either WWW-Authenticate or Proxy-Authenticate).
62 static std::string GetChallengeHeaderName(Target target); 63 static std::string GetChallengeHeaderName(Target target);
63 64
64 // Get the name of the header where the credentials go 65 // Get the name of the header where the credentials go
65 // (either Authorization or Proxy-Authorization). 66 // (either Authorization or Proxy-Authorization).
66 static std::string GetAuthorizationHeaderName(Target target); 67 static std::string GetAuthorizationHeaderName(Target target);
67 68
68 // Create a handler to generate credentials for the challenge, and pass 69 // Create a handler to generate credentials for the challenge, and pass
69 // it back in |*handler|. If the challenge is unsupported or invalid 70 // it back in |*handler|. If the challenge is unsupported or invalid
70 // |*handler| is set to NULL. 71 // |*handler| is set to NULL.
71 static void CreateAuthHandler(const std::string& challenge, 72 static void CreateAuthHandler(const std::string& challenge,
72 Target target, 73 Target target,
73 scoped_refptr<HttpAuthHandler>* handler); 74 scoped_refptr<HttpAuthHandler>* handler);
74 75
75 // Iterate through the challenge headers, and pick the best one that 76 // Iterate through the challenge headers, and pick the best one that
76 // we support. Obtains the implementation class for handling the challenge, 77 // we support. Obtains the implementation class for handling the challenge,
77 // and passes it back in |*handler|. If no supported challenge was found 78 // and passes it back in |*handler|. If the existing handler in |*handler|
78 // |*handler| is set to NULL. 79 // should continue to be used (such as for the NTLM authentication scheme),
80 // |*handler| is unchanged. If no supported challenge was found, |*handler|
81 // is set to NULL.
82 //
83 // TODO(wtc): Continuing to use the existing handler in |*handler| (for
84 // NTLM) is new behavior. Rename ChooseBestChallenge to fully encompass
85 // what it does now.
79 static void ChooseBestChallenge(const HttpResponseHeaders* headers, 86 static void ChooseBestChallenge(const HttpResponseHeaders* headers,
80 Target target, 87 Target target,
81 scoped_refptr<HttpAuthHandler>* handler); 88 scoped_refptr<HttpAuthHandler>* handler);
82 89
83 // ChallengeTokenizer breaks up a challenge string into the the auth scheme 90 // ChallengeTokenizer breaks up a challenge string into the the auth scheme
84 // and parameter list, according to RFC 2617 Sec 1.2: 91 // and parameter list, according to RFC 2617 Sec 1.2:
85 // challenge = auth-scheme 1*SP 1#auth-param 92 // challenge = auth-scheme 1*SP 1#auth-param
86 // 93 //
87 // Check valid() after each iteration step in case it was malformed. 94 // Check valid() after each iteration step in case it was malformed.
88 // Also note that value() will give whatever is to the right of the equals 95 // Also note that value() will give whatever is to the right of the equals
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 std::string::const_iterator value_begin_; 154 std::string::const_iterator value_begin_;
148 std::string::const_iterator value_end_; 155 std::string::const_iterator value_end_;
149 156
150 bool value_is_quoted_; 157 bool value_is_quoted_;
151 }; 158 };
152 }; 159 };
153 160
154 } // namespace net 161 } // namespace net
155 162
156 #endif // NET_HTTP_HTTP_AUTH_H_ 163 #endif // NET_HTTP_HTTP_AUTH_H_
OLDNEW
« no previous file with comments | « net/http/des_unittest.cc ('k') | net/http/http_auth.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698