7 struct http_auth_scheme_t
;
8 struct http_auth_require_t
;
9 struct http_auth_backend_t
;
11 typedef struct http_auth_require_t
{
12 const struct http_auth_scheme_t
*scheme
;
18 } http_auth_require_t
;
20 http_auth_require_t
* http_auth_require_init (void);
21 void http_auth_require_free (http_auth_require_t
*require
);
22 int http_auth_match_rules (const http_auth_require_t
*require
, const char *user
, const char *group
, const char *host
);
24 typedef struct http_auth_backend_t
{
26 handler_t(*basic
)(server
*srv
, connection
*con
, void *p_d
, const http_auth_require_t
*require
, const buffer
*username
, const char *pw
);
27 handler_t(*digest
)(server
*srv
, connection
*con
, void *p_d
, const char *username
, const char *realm
, unsigned char HA1
[16]);
29 } http_auth_backend_t
;
31 typedef struct http_auth_scheme_t
{
33 handler_t(*checkfn
)(server
*srv
, connection
*con
, void *p_d
, const struct http_auth_require_t
*require
, const struct http_auth_backend_t
*backend
);
34 /*(backend is arg only because auth.backend is separate config directive)*/
38 const http_auth_scheme_t
* http_auth_scheme_get (const buffer
*name
);
39 void http_auth_scheme_set (const http_auth_scheme_t
*scheme
);
40 const http_auth_backend_t
* http_auth_backend_get (const buffer
*name
);
41 void http_auth_backend_set (const http_auth_backend_t
*backend
);
43 void http_auth_setenv(array
*env
, const char *username
, size_t ulen
, const char *auth_type
, size_t alen
);
45 int http_auth_md5_hex2bin (const char *md5hex
, size_t len
, unsigned char md5bin
[16]);