]>
Commit | Line | Data |
---|---|---|
bbc27441 | 1 | /* |
77b1029d | 2 | * Copyright (C) 1996-2020 The Squid Software Foundation and contributors |
bbc27441 AJ |
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_DIGEST_USERREQUEST_H |
10 | #define _SQUID_SRC_AUTH_DIGEST_USERREQUEST_H | |
11 | ||
a0026a6c AJ |
12 | #if HAVE_AUTH_MODULE_DIGEST |
13 | ||
602d9612 | 14 | #include "auth/UserRequest.h" |
928f3421 AJ |
15 | |
16 | class ConnStateData; | |
17 | class HttpReply; | |
18 | class HttpRequest; | |
19 | ||
c7baff40 AJ |
20 | namespace Auth |
21 | { | |
22 | namespace Digest | |
23 | { | |
24 | ||
928f3421 | 25 | /** |
c7baff40 | 26 | * The UserRequest structure is what follows the http_request around |
928f3421 | 27 | */ |
c7baff40 | 28 | class UserRequest : public Auth::UserRequest |
928f3421 | 29 | { |
c7baff40 | 30 | MEMPROXY_CLASS(Auth::Digest::UserRequest); |
928f3421 | 31 | |
741c2986 | 32 | public: |
c7baff40 AJ |
33 | UserRequest(); |
34 | virtual ~UserRequest(); | |
928f3421 AJ |
35 | |
36 | virtual int authenticated() const; | |
789217a2 | 37 | virtual void authenticate(HttpRequest * request, ConnStateData * conn, Http::HdrType type); |
c7baff40 | 38 | virtual Direction module_direction(); |
7afc3bf2 | 39 | virtual void addAuthenticationInfoHeader(HttpReply * rep, int accel); |
928f3421 | 40 | #if WAITING_FOR_TE |
7afc3bf2 | 41 | virtual void addAuthenticationInfoTrailer(HttpReply * rep, int accel); |
928f3421 AJ |
42 | #endif |
43 | ||
30c3f584 | 44 | virtual void startHelperLookup(HttpRequest *request, AccessLogEntry::Pointer &al, AUTHCB *, void *); |
d4806c91 | 45 | virtual const char *credentialsStr(); |
928f3421 | 46 | |
b20ce974 | 47 | char *noncehex; /* "dcd98b7102dd2f0e8b11d0f600bfb0c093" */ |
928f3421 AJ |
48 | char *cnonce; /* "0a4f113b" */ |
49 | char *realm; /* = "testrealm@host.com" */ | |
50 | char *pszPass; /* = "Circle Of Life" */ | |
51 | char *algorithm; /* = "md5" */ | |
52 | char nc[9]; /* = "00000001" */ | |
53 | char *pszMethod; /* = "GET" */ | |
54 | char *qop; /* = "auth" */ | |
55 | char *uri; /* = "/dir/index.html" */ | |
56 | char *response; | |
57 | ||
58 | struct { | |
3dd52a0b FC |
59 | bool authinfo_sent; |
60 | bool invalid_password; | |
61 | bool helper_queried; | |
928f3421 AJ |
62 | } flags; |
63 | digest_nonce_h *nonce; | |
64 | ||
65 | private: | |
928f3421 AJ |
66 | static HLPCB HandleReply; |
67 | }; | |
68 | ||
c7baff40 AJ |
69 | } // namespace Digest |
70 | } // namespace Auth | |
71 | ||
a0026a6c | 72 | #endif /* HAVE_AUTH_MODULE_DIGEST */ |
928f3421 | 73 | #endif /* _SQUID_SRC_AUTH_DIGEST_USERREQUEST_H */ |
f53969cc | 74 |