]>
Commit | Line | Data |
---|---|---|
bbc27441 AJ |
1 | /* |
2 | * Copyright (C) 1996-2014 The Squid Software Foundation and contributors | |
3 | * | |
4 | * Squid software is distributed under GPLv2+ license and includes | |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
7 | */ | |
8 | ||
928f3421 AJ |
9 | #ifndef _SQUID_SRC_AUTH_NEGOTIATE_USERREQUEST_H |
10 | #define _SQUID_SRC_AUTH_NEGOTIATE_USERREQUEST_H | |
11 | ||
928f3421 | 12 | #include "auth/UserRequest.h" |
12daeef6 | 13 | #include "helper/forward.h" |
928f3421 AJ |
14 | #include "MemPool.h" |
15 | ||
928f3421 AJ |
16 | class ConnStateData; |
17 | class HttpReply; | |
18 | class HttpRequest; | |
928f3421 | 19 | |
c7baff40 AJ |
20 | namespace Auth |
21 | { | |
22 | namespace Negotiate | |
23 | { | |
24 | ||
928f3421 | 25 | /// \ingroup AuthNegotiateAPI |
c7baff40 | 26 | class UserRequest : public Auth::UserRequest |
928f3421 AJ |
27 | { |
28 | ||
29 | public: | |
c7baff40 | 30 | MEMPROXY_CLASS(Auth::Negotiate::UserRequest); |
928f3421 | 31 | |
c7baff40 AJ |
32 | UserRequest(); |
33 | virtual ~UserRequest(); | |
928f3421 AJ |
34 | virtual int authenticated() const; |
35 | virtual void authenticate(HttpRequest * request, ConnStateData * conn, http_hdr_type type); | |
c7baff40 | 36 | virtual Direction module_direction(); |
30c3f584 | 37 | virtual void startHelperLookup(HttpRequest *request, AccessLogEntry::Pointer &al, AUTHCB *, void *); |
d4806c91 | 38 | virtual const char *credentialsStr(); |
928f3421 | 39 | |
7afc3bf2 | 40 | virtual void addAuthenticationInfoHeader(HttpReply * rep, int accel); |
928f3421 AJ |
41 | |
42 | virtual const char * connLastHeader(); | |
43 | ||
44 | /* we need to store the helper server between requests */ | |
45 | helper_stateful_server *authserver; | |
46 | void releaseAuthServer(void); ///< Release the authserver helper server properly. | |
47 | ||
48 | /* what connection is this associated with */ | |
49 | /* ConnStateData * conn;*/ | |
50 | ||
928f3421 AJ |
51 | /* our current blob to pass to the client */ |
52 | char *server_blob; | |
53 | /* our current blob to pass to the server */ | |
54 | char *client_blob; | |
55 | ||
56 | /* currently waiting for helper response */ | |
57 | unsigned char waiting; | |
58 | ||
59 | /* need access to the request flags to mess around on pconn failure */ | |
60 | HttpRequest *request; | |
61 | ||
62 | private: | |
e166785a | 63 | static HLPCB HandleReply; |
928f3421 AJ |
64 | }; |
65 | ||
c7baff40 AJ |
66 | } // namespace Negotiate |
67 | } // namespace Auth | |
68 | ||
69 | MEMPROXY_CLASS_INLINE(Auth::Negotiate::UserRequest); | |
928f3421 AJ |
70 | |
71 | #endif /* _SQUID_SRC_AUTH_NEGOTIATE_USERREQUEST_H */ |