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

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

Issue 4560001: Support specifying the GSSAPI library that will be used. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: fix library handling on Windows; port to ToT Created 10 years, 1 month 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_GSSAPI_POSIX_H_ 5 #ifndef NET_HTTP_HTTP_AUTH_GSSAPI_POSIX_H_
6 #define NET_HTTP_HTTP_AUTH_GSSAPI_POSIX_H_ 6 #define NET_HTTP_HTTP_AUTH_GSSAPI_POSIX_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 OM_uint32* minor_status, 88 OM_uint32* minor_status,
89 const gss_ctx_id_t context_handle, 89 const gss_ctx_id_t context_handle,
90 gss_name_t* src_name, 90 gss_name_t* src_name,
91 gss_name_t* targ_name, 91 gss_name_t* targ_name,
92 OM_uint32* lifetime_rec, 92 OM_uint32* lifetime_rec,
93 gss_OID* mech_type, 93 gss_OID* mech_type,
94 OM_uint32* ctx_flags, 94 OM_uint32* ctx_flags,
95 int* locally_initiated, 95 int* locally_initiated,
96 int* open) = 0; 96 int* open) = 0;
97 97
98 // Get the default GSSPILibrary instance. The object returned is a singleton
99 // instance, and the caller should not delete it.
100 static GSSAPILibrary* GetDefault();
101 }; 98 };
102 99
103 // GSSAPISharedLibrary class is defined here so that unit tests can access it. 100 // GSSAPISharedLibrary class is defined here so that unit tests can access it.
104 class GSSAPISharedLibrary : public GSSAPILibrary { 101 class GSSAPISharedLibrary : public GSSAPILibrary {
105 public: 102 public:
106 GSSAPISharedLibrary(); 103 // Pass an empty string for |gssapi_library_name| to fall back to hard-coded
danno 2010/11/10 16:52:01 // If |gssapi_library_name| is empty, hard-coded d
Jakob Kummerow (corp) 2010/11/10 17:48:39 Done.
104 // default library names.
105 explicit GSSAPISharedLibrary(const std::string& gssapi_library_name);
107 virtual ~GSSAPISharedLibrary(); 106 virtual ~GSSAPISharedLibrary();
108 107
109 // GSSAPILibrary methods: 108 // GSSAPILibrary methods:
110 virtual bool Init(); 109 virtual bool Init();
111 virtual OM_uint32 import_name( 110 virtual OM_uint32 import_name(
112 OM_uint32* minor_status, 111 OM_uint32* minor_status,
113 const gss_buffer_t input_name_buffer, 112 const gss_buffer_t input_name_buffer,
114 const gss_OID input_name_type, 113 const gss_OID input_name_type,
115 gss_name_t* output_name); 114 gss_name_t* output_name);
116 virtual OM_uint32 release_name( 115 virtual OM_uint32 release_name(
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 171
173 bool InitImpl(); 172 bool InitImpl();
174 // Finds a usable dynamic library for GSSAPI and loads it. The criteria are: 173 // Finds a usable dynamic library for GSSAPI and loads it. The criteria are:
175 // 1. The library must exist. 174 // 1. The library must exist.
176 // 2. The library must export the functions we need. 175 // 2. The library must export the functions we need.
177 base::NativeLibrary LoadSharedLibrary(); 176 base::NativeLibrary LoadSharedLibrary();
178 bool BindMethods(base::NativeLibrary lib); 177 bool BindMethods(base::NativeLibrary lib);
179 178
180 bool initialized_; 179 bool initialized_;
181 180
181 std::string gssapi_library_name_;
182 // Need some way to invalidate the library. 182 // Need some way to invalidate the library.
183 base::NativeLibrary gssapi_library_; 183 base::NativeLibrary gssapi_library_;
184 184
185 // Function pointers 185 // Function pointers
186 gss_import_name_type import_name_; 186 gss_import_name_type import_name_;
187 gss_release_name_type release_name_; 187 gss_release_name_type release_name_;
188 gss_release_buffer_type release_buffer_; 188 gss_release_buffer_type release_buffer_;
189 gss_display_name_type display_name_; 189 gss_display_name_type display_name_;
190 gss_display_status_type display_status_; 190 gss_display_status_type display_status_;
191 gss_init_sec_context_type init_sec_context_; 191 gss_init_sec_context_type init_sec_context_;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 gss_OID gss_oid_; 254 gss_OID gss_oid_;
255 GSSAPILibrary* library_; 255 GSSAPILibrary* library_;
256 std::string decoded_server_auth_token_; 256 std::string decoded_server_auth_token_;
257 ScopedSecurityContext scoped_sec_context_; 257 ScopedSecurityContext scoped_sec_context_;
258 bool can_delegate_; 258 bool can_delegate_;
259 }; 259 };
260 260
261 } // namespace net 261 } // namespace net
262 262
263 #endif // NET_HTTP_HTTP_AUTH_GSSAPI_POSIX_H_ 263 #endif // NET_HTTP_HTTP_AUTH_GSSAPI_POSIX_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698