Annotation of embedaddon/lighttpd/src/http_auth.h, revision 1.1.1.1
1.1 misho 1: #ifndef _HTTP_AUTH_H_
2: #define _HTTP_AUTH_H_
3:
4: #include "server.h"
5: #include "plugin.h"
6:
7: #if defined(HAVE_LDAP_H) && defined(HAVE_LBER_H) && defined(HAVE_LIBLDAP) && defined(HAVE_LIBLBER)
8: # define USE_LDAP
9: # include <ldap.h>
10: #endif
11:
12: typedef enum {
13: AUTH_BACKEND_UNSET,
14: AUTH_BACKEND_PLAIN,
15: AUTH_BACKEND_LDAP,
16: AUTH_BACKEND_HTPASSWD,
17: AUTH_BACKEND_HTDIGEST
18: } auth_backend_t;
19:
20: typedef struct {
21: /* auth */
22: array *auth_require;
23:
24: buffer *auth_plain_groupfile;
25: buffer *auth_plain_userfile;
26:
27: buffer *auth_htdigest_userfile;
28: buffer *auth_htpasswd_userfile;
29:
30: buffer *auth_backend_conf;
31:
32: buffer *auth_ldap_hostname;
33: buffer *auth_ldap_basedn;
34: buffer *auth_ldap_binddn;
35: buffer *auth_ldap_bindpw;
36: buffer *auth_ldap_filter;
37: buffer *auth_ldap_cafile;
38: unsigned short auth_ldap_starttls;
39: unsigned short auth_ldap_allow_empty_pw;
40:
41: unsigned short auth_debug;
42:
43: /* generated */
44: auth_backend_t auth_backend;
45:
46: #ifdef USE_LDAP
47: LDAP *ldap;
48:
49: buffer *ldap_filter_pre;
50: buffer *ldap_filter_post;
51: #endif
52: } mod_auth_plugin_config;
53:
54: typedef struct {
55: PLUGIN_DATA;
56: buffer *tmp_buf;
57:
58: buffer *auth_user;
59:
60: #ifdef USE_LDAP
61: buffer *ldap_filter;
62: #endif
63:
64: mod_auth_plugin_config **config_storage;
65:
66: mod_auth_plugin_config conf, *anon_conf; /* this is only used as long as no handler_ctx is setup */
67: } mod_auth_plugin_data;
68:
69: int http_auth_basic_check(server *srv, connection *con, mod_auth_plugin_data *p, array *req, const char *realm_str);
70: int http_auth_digest_check(server *srv, connection *con, mod_auth_plugin_data *p, array *req, const char *realm_str);
71: int http_auth_digest_generate_nonce(server *srv, mod_auth_plugin_data *p, buffer *fn, char hh[33]);
72: int http_auth_match_rules(server *srv, array *req, const char *username, const char *group, const char *host);
73:
74: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>