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

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

Issue 1128043007: Support Kerberos on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix cbentzel@'s nits Created 5 years, 5 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_HANDLER_NEGOTIATE_H_ 5 #ifndef NET_HTTP_HTTP_AUTH_HANDLER_NEGOTIATE_H_
6 #define NET_HTTP_HTTP_AUTH_HANDLER_NEGOTIATE_H_ 6 #define NET_HTTP_HTTP_AUTH_HANDLER_NEGOTIATE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "build/build_config.h" 10 #include "build/build_config.h"
11 #include "net/base/address_list.h" 11 #include "net/base/address_list.h"
12 #include "net/base/net_export.h" 12 #include "net/base/net_export.h"
13 #include "net/http/http_auth_handler.h" 13 #include "net/http/http_auth_handler.h"
14 #include "net/http/http_auth_handler_factory.h" 14 #include "net/http/http_auth_handler_factory.h"
15 15
16 #if defined(OS_WIN) 16 #if defined(OS_ANDROID)
17 #include "net/android/http_auth_negotiate_android.h"
18 #elif defined(OS_WIN)
17 #include "net/http/http_auth_sspi_win.h" 19 #include "net/http/http_auth_sspi_win.h"
18 #elif defined(OS_POSIX) 20 #elif defined(OS_POSIX)
19 #include "net/http/http_auth_gssapi_posix.h" 21 #include "net/http/http_auth_gssapi_posix.h"
20 #endif 22 #endif
21 23
22 namespace net { 24 namespace net {
23 25
24 class HostResolver; 26 class HostResolver;
25 class SingleRequestHostResolver; 27 class SingleRequestHostResolver;
26 class URLSecurityManager; 28 class URLSecurityManager;
27 29
28 // Handler for WWW-Authenticate: Negotiate protocol. 30 // Handler for WWW-Authenticate: Negotiate protocol.
29 // 31 //
30 // See http://tools.ietf.org/html/rfc4178 and http://tools.ietf.org/html/rfc4559 32 // See http://tools.ietf.org/html/rfc4178 and http://tools.ietf.org/html/rfc4559
31 // for more information about the protocol. 33 // for more information about the protocol.
32 34
33 class NET_EXPORT_PRIVATE HttpAuthHandlerNegotiate : public HttpAuthHandler { 35 class NET_EXPORT_PRIVATE HttpAuthHandlerNegotiate : public HttpAuthHandler {
34 public: 36 public:
35 #if defined(OS_WIN) 37 #if defined(OS_ANDROID)
38 typedef net::android::HttpAuthNegotiateAndroid AuthSystem;
39 // For Android this isn't a library, but for the Android Account type, which
40 // indirectly identifies the Kerberos/SPNEGO authentication app.
41 typedef const std::string AuthLibrary;
42 #elif defined(OS_WIN)
36 typedef SSPILibrary AuthLibrary; 43 typedef SSPILibrary AuthLibrary;
37 typedef HttpAuthSSPI AuthSystem; 44 typedef HttpAuthSSPI AuthSystem;
38 #elif defined(OS_POSIX) 45 #elif defined(OS_POSIX)
39 typedef GSSAPILibrary AuthLibrary; 46 typedef GSSAPILibrary AuthLibrary;
40 typedef HttpAuthGSSAPI AuthSystem; 47 typedef HttpAuthGSSAPI AuthSystem;
41 #endif 48 #endif
42 49
43 class NET_EXPORT_PRIVATE Factory : public HttpAuthHandlerFactory { 50 class NET_EXPORT_PRIVATE Factory : public HttpAuthHandlerFactory {
44 public: 51 public:
45 Factory(); 52 Factory();
(...skipping 12 matching lines...) Expand all
58 // generated by this factory should include the port number of the server 65 // generated by this factory should include the port number of the server
59 // they are authenticating to when constructing a Kerberos SPN. The default 66 // they are authenticating to when constructing a Kerberos SPN. The default
60 // value is false. 67 // value is false.
61 bool use_port() const { return use_port_; } 68 bool use_port() const { return use_port_; }
62 void set_use_port(bool use_port) { use_port_ = use_port; } 69 void set_use_port(bool use_port) { use_port_ = use_port; }
63 70
64 void set_host_resolver(HostResolver* host_resolver); 71 void set_host_resolver(HostResolver* host_resolver);
65 72
66 // Sets the system library to use, thereby assuming ownership of 73 // Sets the system library to use, thereby assuming ownership of
67 // |auth_library|. 74 // |auth_library|.
68 void set_library(AuthLibrary* auth_library) { 75 void set_library(AuthLibrary* auth_provider) {
69 auth_library_.reset(auth_library); 76 auth_library_.reset(auth_provider);
70 } 77 }
71 78
72 int CreateAuthHandler(HttpAuthChallengeTokenizer* challenge, 79 int CreateAuthHandler(HttpAuthChallengeTokenizer* challenge,
73 HttpAuth::Target target, 80 HttpAuth::Target target,
74 const GURL& origin, 81 const GURL& origin,
75 CreateReason reason, 82 CreateReason reason,
76 int digest_nonce_count, 83 int digest_nonce_count,
77 const BoundNetLog& net_log, 84 const BoundNetLog& net_log,
78 scoped_ptr<HttpAuthHandler>* handler) override; 85 scoped_ptr<HttpAuthHandler>* handler) override;
79 86
80 private: 87 private:
81 bool disable_cname_lookup_; 88 bool disable_cname_lookup_;
82 bool use_port_; 89 bool use_port_;
83 HostResolver* resolver_; 90 HostResolver* resolver_;
84 #if defined(OS_WIN) 91 #if defined(OS_WIN)
85 ULONG max_token_length_; 92 ULONG max_token_length_;
86 bool first_creation_; 93 bool first_creation_;
87 #endif 94 #endif
88 bool is_unsupported_; 95 bool is_unsupported_;
89 scoped_ptr<AuthLibrary> auth_library_; 96 scoped_ptr<AuthLibrary> auth_library_;
90 }; 97 };
91 98
92 HttpAuthHandlerNegotiate(AuthLibrary* sspi_library, 99 HttpAuthHandlerNegotiate(AuthLibrary* auth_library,
93 #if defined(OS_WIN) 100 #if defined(OS_WIN)
94 ULONG max_token_length, 101 ULONG max_token_length,
95 #endif 102 #endif
96 URLSecurityManager* url_security_manager, 103 URLSecurityManager* url_security_manager,
97 HostResolver* host_resolver, 104 HostResolver* host_resolver,
98 bool disable_cname_lookup, 105 bool disable_cname_lookup,
99 bool use_port); 106 bool use_port);
100 107
101 ~HttpAuthHandlerNegotiate() override; 108 ~HttpAuthHandlerNegotiate() override;
102 109
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 std::string* auth_token_; 165 std::string* auth_token_;
159 166
160 State next_state_; 167 State next_state_;
161 168
162 const URLSecurityManager* url_security_manager_; 169 const URLSecurityManager* url_security_manager_;
163 }; 170 };
164 171
165 } // namespace net 172 } // namespace net
166 173
167 #endif // NET_HTTP_HTTP_AUTH_HANDLER_NEGOTIATE_H_ 174 #endif // NET_HTTP_HTTP_AUTH_HANDLER_NEGOTIATE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698