mod-auth-commit Mailing List for mod_auth (Page 6)
Brought to you by:
firechipmunk,
honx
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(36) |
Dec
(8) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(51) |
Mar
(22) |
Apr
|
May
(6) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <fir...@us...> - 2003-11-11 03:26:52
|
Update of /cvsroot/mod-auth/mod_authn_pop3/src In directory sc8-pr-cvs1:/tmp/cvs-serv23734/src Modified Files: mod_authn_pop3.c Log Message: converted pop3 auth to authn_pop3. should "work" for 2.1 authentication now. I also added a couple autoconf things that are the *correct* versions. I hate you autoconf. I hate you so very very much. Index: mod_authn_pop3.c =================================================================== RCS file: /cvsroot/mod-auth/mod_authn_pop3/src/mod_authn_pop3.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mod_authn_pop3.c 11 Nov 2003 02:57:31 -0000 1.1 --- mod_authn_pop3.c 11 Nov 2003 03:26:48 -0000 1.2 *************** *** 83,86 **** --- 83,87 ---- #include "http_protocol.h" #include "http_request.h" /* for ap_hook_(check_user_id | auth_checker)*/ + #include "mod_auth.h" *************** *** 88,95 **** char *serverhostname; int port; - int auth_popauthoritative; } pop_auth_config_rec; ! static void *create_pop_auth_dir_config(apr_pool_t *p, char *d) { pop_auth_config_rec *conf = apr_palloc(p, sizeof(*conf)); --- 89,95 ---- char *serverhostname; int port; } pop_auth_config_rec; ! static void *create_authn_pop3_dir_config(apr_pool_t *p, char *d) { pop_auth_config_rec *conf = apr_palloc(p, sizeof(*conf)); *************** *** 97,114 **** conf->serverhostname = NULL; conf->port = 110; - conf->auth_popauthoritative = 1; /* fortress is secure by default */ return conf; } - static const char *set_pop_slot(cmd_parms *cmd, void *offset, - const char *f, const char *t) - { - if (!t || strcmp(t, "pop")) - return DECLINE_CMD; - - return ap_set_file_slot(cmd, offset, f); - } - static const char *set_pop_hostname(cmd_parms *cmd, void *dir_config, --- 97,104 ---- *************** *** 132,189 **** ! static const command_rec pop_auth_cmds[] = { ! AP_INIT_TAKE1("AuthPOPHostname", set_pop_hostname, NULL, OR_AUTHCFG, "hostname for POP Server"), ! AP_INIT_TAKE1("AuthPOPPort", set_pop_port, NULL, OR_AUTHCFG, "port for POP Server"), - - AP_INIT_FLAG("AuthPOPAuthoritative", ap_set_flag_slot, - (void *)APR_OFFSETOF(pop_auth_config_rec, auth_popauthoritative), - OR_AUTHCFG, "Set to 'no' to allow access control to be passed along to lower modules, if the UserID is not known in this module"), {NULL} }; - typedef struct { - request_rec *r; - const char *cookiename; - char *cookie; - } cookie_res; - - - static int cookie_match( void *result, const char *key, const char *cook) - { - char *value; - cookie_res * cr = (cookie_res *) result; - - if (cook != NULL) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, cr->r, "mod_auth_pop checking cookie <%s>", cook); - if ((value = strstr(cook, cr->cookiename))) { - char *cookiebuf, *cookieend; - value += strlen(cr->cookiename) + 1; /* Skip over the '=' */ - cookiebuf = apr_pstrdup(cr->r->pool, value); - cookieend = strchr(cookiebuf, ';'); - if (cookieend) - *cookieend = '\0'; /* Ignore anything after a ; */ - cr->cookie = cookiebuf; - return (0); - } - } - return (1); - - } - static char * find_our_cookie(request_rec *r, const char* cookiename) - { - cookie_res *cr = apr_palloc(r->pool, sizeof(cookie_res)); - cr->r = r; - cr->cookie = NULL; - cr->cookiename = cookiename; - apr_table_do(cookie_match, (void *) cr, r->headers_in, "Cookie", NULL); - return (cr->cookie); - } - - #define RECVLEN 200 static apr_status_t send_pop_command( request_rec *r, --- 122,136 ---- ! static const command_rec authn_pop3_cmds[] = { ! AP_INIT_TAKE1("AuthnPOP3Hostname", set_pop_hostname, NULL, OR_AUTHCFG, "hostname for POP Server"), ! AP_INIT_TAKE1("AuthnPOP3Port", set_pop_port, NULL, OR_AUTHCFG, "port for POP Server"), {NULL} }; #define RECVLEN 200 static apr_status_t send_pop_command( request_rec *r, *************** *** 215,218 **** --- 162,166 ---- } + static apr_status_t pop_auth( request_rec *r, *************** *** 242,246 **** return rv; } ! if (apr_socket_create(&sock, sockaddr->family, SOCK_STREAM, pool) != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_create"); return rv; --- 190,194 ---- return rv; } ! if (apr_socket_create(&sock, sockaddr->family, SOCK_STREAM, 0, pool) != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_create"); return rv; *************** *** 307,377 **** return APR_SUCCESS; } - module AP_MODULE_DECLARE_DATA pop_auth_module; ! static int pop_authenticate_basic_user(request_rec *r) { pop_auth_config_rec *conf = ap_get_module_config(r->per_dir_config, ! &pop_auth_module); ! const char *sent_pw; ! apr_status_t invalid_pw; ! apr_interval_time_t timeout = apr_time_from_sec(10); ! int res; ! char *cookie, *cookiename; ! char md5result[120]; ! ! if (!conf->serverhostname ) ! return DECLINED; ! ! if ((res = ap_get_basic_auth_pw(r, &sent_pw))) ! return res; ! ! apr_md5_encode( conf->serverhostname, "severname", md5result, sizeof(md5result)); ! ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, ! "MD5 hash %s %s ", md5result, conf->serverhostname); ! cookiename = apr_psprintf(r->pool, "pam_%s", md5result ); ! cookie = find_our_cookie(r,cookiename); ! invalid_pw = pop_auth( r, ! r->user, ! sent_pw, conf->serverhostname, conf->port, timeout); ! if (invalid_pw != APR_SUCCESS ) { ! if (!(conf->auth_popauthoritative)) ! return DECLINED; ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "POP user %s authentication failure for \"%s\": " "Password Mismatch", r->user, r->uri ); - ap_note_basic_auth_failure(r); - return HTTP_UNAUTHORIZED; } ! return OK; } - /* Checking ID */ ! static int pop_check_auth(request_rec *r) { ! return DECLINED; } static void register_hooks(apr_pool_t *p) { ! ap_hook_check_user_id(pop_authenticate_basic_user, NULL, NULL, ! APR_HOOK_MIDDLE); ! ap_hook_auth_checker(pop_check_auth, NULL, NULL, APR_HOOK_MIDDLE); } ! module AP_MODULE_DECLARE_DATA pop_auth_module = { STANDARD20_MODULE_STUFF, ! create_pop_auth_dir_config, /* dir config creater */ NULL, /* dir merger --- default is to override */ NULL, /* server config */ NULL, /* merge server config */ ! pop_auth_cmds, /* command apr_table_t */ register_hooks /* register hooks */ }; --- 255,319 ---- return APR_SUCCESS; } ! module AP_MODULE_DECLARE_DATA authn_pop3_module; ! ! static authn_status check_pop3_pw(request_rec * r, const char *user, ! const char *password) { + apr_status_t pop3_ret; pop_auth_config_rec *conf = ap_get_module_config(r->per_dir_config, ! &authn_pop3_module); ! int timeout = 20; ! pop3_ret = pop_auth( r, ! user, ! password, conf->serverhostname, conf->port, timeout); ! if (pop3_ret != APR_SUCCESS ) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "POP user %s authentication failure for \"%s\": " "Password Mismatch", r->user, r->uri ); } ! else { ! return AUTH_GRANTED; ! } ! ! return AUTH_DENIED; } ! static authn_status get_pop3_realm_hash(request_rec * r, const char *user, ! const char *realm, char **rethash) { ! ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, ! "[mod_authn_pop3.c] - Digest Authentication with authn_pop3 is not possible"); ! ! return AUTH_DENIED; } + static const authn_provider authn_pop3_provider = { + &check_pop3_pw, + &get_pop3_realm_hash + }; + static void register_hooks(apr_pool_t *p) { ! ap_register_provider(p, AUTHN_PROVIDER_GROUP, "pop3", "0", ! &authn_pop3_provider); ! } ! module AP_MODULE_DECLARE_DATA authn_pop3_module = { STANDARD20_MODULE_STUFF, ! create_authn_pop3_dir_config, /* dir config creater */ NULL, /* dir merger --- default is to override */ NULL, /* server config */ NULL, /* merge server config */ ! authn_pop3_cmds, /* command apr_table_t */ register_hooks /* register hooks */ }; |
From: <fir...@us...> - 2003-11-11 02:57:35
|
Update of /cvsroot/mod-auth/mod_authn_pop3/src In directory sc8-pr-cvs1:/tmp/cvs-serv18125/src Added Files: Makefile.am mod_authn_pop3.c Removed Files: mod_auth_pop3.c Log Message: add autoconf foo for authn_pop3. also moved it from auth_pop3 to authn_pop3 --- NEW FILE: Makefile.am --- CLEANFILES = .libs/libmod_authn_pop3 *~ libmod_authn_pop3_la_SOURCES = mod_authn_pop3.c lib_LTLIBRARIES = libmod_authn_pop3.la make_so: @if test ! -L mod_authn_pop3.so ; then ln -s .libs/libmod_authn_pop3.so mod_authn_pop3.so ; fi install: $(INSTALL) -m 644 .libs/libmod_authn_pop3.so $(LIBEXECDIR)/mod_authn_pop3.so @echo "" @echo "" @echo "***********************************************" @echo "" @echo " Please read the documentation at " @echo " http://mod-auth.sourceforge.net/docs/ for " @echo " details on configuration of this module " @echo "" @echo "***********************************************" @echo "" --- NEW FILE: mod_authn_pop3.c --- /* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2000-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact ap...@ap.... * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * * Portions of this software are based upon public domain software * originally written at the National Center for Supercomputing Applications, * University of Illinois, Urbana-Champaign. */ /* * http_auth: authentication * * Rob McCool & Brian Behlendorf. * * Adapted to Apache by rst. * * dirkx - Added Authoritative control to allow passing on to lower * modules if and only if the userid is not known to this * module. A known user with a faulty or absent password still * causes an AuthRequired. The default is 'Authoritative', i.e. * no control is passed along. * * ianh - modified to use pop for authentication */ #define APR_WANT_STRFUNC #include "apr_want.h" #include "apr_strings.h" #include "httpd.h" #include "http_config.h" #include "http_core.h" #include "http_log.h" #include "http_protocol.h" #include "http_request.h" /* for ap_hook_(check_user_id | auth_checker)*/ typedef struct { char *serverhostname; int port; int auth_popauthoritative; } pop_auth_config_rec; static void *create_pop_auth_dir_config(apr_pool_t *p, char *d) { pop_auth_config_rec *conf = apr_palloc(p, sizeof(*conf)); conf->serverhostname = NULL; conf->port = 110; conf->auth_popauthoritative = 1; /* fortress is secure by default */ return conf; } static const char *set_pop_slot(cmd_parms *cmd, void *offset, const char *f, const char *t) { if (!t || strcmp(t, "pop")) return DECLINE_CMD; return ap_set_file_slot(cmd, offset, f); } static const char *set_pop_hostname(cmd_parms *cmd, void *dir_config, const char *arg) { pop_auth_config_rec *conf = dir_config; conf->serverhostname = apr_pstrdup(cmd->pool, arg); return NULL; } static const char *set_pop_port(cmd_parms *cmd, void *dir_config, const char *arg) { pop_auth_config_rec *conf = dir_config; conf->port = atoi(arg); return NULL; } static const command_rec pop_auth_cmds[] = { AP_INIT_TAKE1("AuthPOPHostname", set_pop_hostname, NULL, OR_AUTHCFG, "hostname for POP Server"), AP_INIT_TAKE1("AuthPOPPort", set_pop_port, NULL, OR_AUTHCFG, "port for POP Server"), AP_INIT_FLAG("AuthPOPAuthoritative", ap_set_flag_slot, (void *)APR_OFFSETOF(pop_auth_config_rec, auth_popauthoritative), OR_AUTHCFG, "Set to 'no' to allow access control to be passed along to lower modules, if the UserID is not known in this module"), {NULL} }; typedef struct { request_rec *r; const char *cookiename; char *cookie; } cookie_res; static int cookie_match( void *result, const char *key, const char *cook) { char *value; cookie_res * cr = (cookie_res *) result; if (cook != NULL) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, cr->r, "mod_auth_pop checking cookie <%s>", cook); if ((value = strstr(cook, cr->cookiename))) { char *cookiebuf, *cookieend; value += strlen(cr->cookiename) + 1; /* Skip over the '=' */ cookiebuf = apr_pstrdup(cr->r->pool, value); cookieend = strchr(cookiebuf, ';'); if (cookieend) *cookieend = '\0'; /* Ignore anything after a ; */ cr->cookie = cookiebuf; return (0); } } return (1); } static char * find_our_cookie(request_rec *r, const char* cookiename) { cookie_res *cr = apr_palloc(r->pool, sizeof(cookie_res)); cr->r = r; cr->cookie = NULL; cr->cookiename = cookiename; apr_table_do(cookie_match, (void *) cr, r->headers_in, "Cookie", NULL); return (cr->cookie); } #define RECVLEN 200 static apr_status_t send_pop_command( request_rec *r, apr_socket_t *sock, const char* command, char*response, apr_size_t *responselen) { apr_status_t rv; apr_size_t sendlen; char errbuf[200]; sendlen = strlen(command); rv = apr_socket_send( sock, command, &sendlen); if (rv != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_send"); return rv; } memset( response, 0, *responselen); rv = apr_socket_recv( sock, response, responselen); if (rv != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_recv"); return rv; } return rv; } static apr_status_t pop_auth( request_rec *r, const char *user, const char *pass, const char *hostname, int port, apr_interval_time_t timeout) { apr_status_t rv; apr_socket_t *sock = NULL; apr_sockaddr_t *sockaddr; apr_pool_t *pool; char *line=NULL; char *recv=NULL; apr_size_t recvlen; pool = r->pool; recv = apr_palloc( pool, RECVLEN); recvlen = RECVLEN; rv = apr_sockaddr_info_get(&sockaddr, hostname, APR_UNSPEC, port, 0, pool ); if (rv != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_sockaddr_info_get"); return rv; } if (apr_socket_create(&sock, sockaddr->family, SOCK_STREAM, pool) != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_create"); return rv; } rv = apr_socket_timeout_set(sock, timeout); if (rv != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_timeout_set"); return rv; } rv = apr_socket_connect( sock, sockaddr); if (rv != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_connect"); return rv; } rv = apr_socket_recv( sock, recv, &recvlen); if (rv != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_recv handshake"); apr_socket_close(sock); return rv; } if ( *recv != '+' ) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0 , r, "invalid handshake %s", recv); apr_socket_close(sock); return APR_EGENERAL; } line = apr_psprintf(pool, "USER %s\r\n", user ); rv = send_pop_command(r, sock, line, recv, &recvlen ); if (rv != APR_SUCCESS) { apr_socket_close(sock); return rv; } if ( *recv != '+' ) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "invalid response to USER command %s",recv); apr_socket_close(sock); return APR_EGENERAL; } recvlen = RECVLEN; line = apr_psprintf(pool, "PASS %s\r\n", pass ); rv = send_pop_command(r, sock, line, recv, &recvlen ); if (rv != APR_SUCCESS) { apr_socket_close(sock); return rv; } if ( *recv != '+' ) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0 , r, "invalid password %s",recv); apr_socket_close(sock); return APR_EGENERAL; } recvlen = RECVLEN; line = apr_psprintf(pool, "QUIT\r\n" ); rv = send_pop_command(r, sock, line, recv, &recvlen ); rv = apr_socket_close( sock ); if (rv != APR_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_ERR, rv , r, "apr_socket_close"); return rv; } return APR_SUCCESS; } module AP_MODULE_DECLARE_DATA pop_auth_module; static int pop_authenticate_basic_user(request_rec *r) { pop_auth_config_rec *conf = ap_get_module_config(r->per_dir_config, &pop_auth_module); const char *sent_pw; apr_status_t invalid_pw; apr_interval_time_t timeout = apr_time_from_sec(10); int res; char *cookie, *cookiename; char md5result[120]; if (!conf->serverhostname ) return DECLINED; if ((res = ap_get_basic_auth_pw(r, &sent_pw))) return res; apr_md5_encode( conf->serverhostname, "severname", md5result, sizeof(md5result)); ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "MD5 hash %s %s ", md5result, conf->serverhostname); cookiename = apr_psprintf(r->pool, "pam_%s", md5result ); cookie = find_our_cookie(r,cookiename); invalid_pw = pop_auth( r, r->user, sent_pw, conf->serverhostname, conf->port, timeout); if (invalid_pw != APR_SUCCESS ) { if (!(conf->auth_popauthoritative)) return DECLINED; ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "POP user %s authentication failure for \"%s\": " "Password Mismatch", r->user, r->uri ); ap_note_basic_auth_failure(r); return HTTP_UNAUTHORIZED; } return OK; } /* Checking ID */ static int pop_check_auth(request_rec *r) { return DECLINED; } static void register_hooks(apr_pool_t *p) { ap_hook_check_user_id(pop_authenticate_basic_user, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_auth_checker(pop_check_auth, NULL, NULL, APR_HOOK_MIDDLE); } module AP_MODULE_DECLARE_DATA pop_auth_module = { STANDARD20_MODULE_STUFF, create_pop_auth_dir_config, /* dir config creater */ NULL, /* dir merger --- default is to override */ NULL, /* server config */ NULL, /* merge server config */ pop_auth_cmds, /* command apr_table_t */ register_hooks /* register hooks */ }; --- mod_auth_pop3.c DELETED --- |
Update of /cvsroot/mod-auth/mod_authn_pop3 In directory sc8-pr-cvs1:/tmp/cvs-serv18125 Added Files: AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS README configure.in Log Message: add autoconf foo for authn_pop3. also moved it from auth_pop3 to authn_pop3 --- NEW FILE: AUTHORS --- Paul Querna --- NEW FILE: COPYING --- The Apache Software License, Version 1.1 Copyright (c) 2000 The Apache Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Apache" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact ap...@ap.... 5. Products derived from this software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================== This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache Software Foundation, please see <http://www.apache.org/>. Portions of this software are based upon public domain software originally written at the National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign. --- NEW FILE: ChangeLog --- --- NEW FILE: INSTALL --- Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. --- NEW FILE: Makefile.am --- EXTRA_DIST = SUBDIRS = src --- NEW FILE: NEWS --- --- NEW FILE: README --- --- NEW FILE: configure.in --- AC_INIT(src/mod_authn_pop3.c) AM_MAINTAINER_MODE AM_INIT_AUTOMAKE(mod_authn_pop3, 0.0.1) AM_CONFIG_HEADER(include/mod_authn_pop3_config.h:config.in) AC_PROG_CC AC_PROG_CPP AC_PROG_LD AC_PROG_INSTALL AM_PROG_LIBTOOL # check for --with-apxs AC_MSG_CHECKING(for --with-apxs) AC_ARG_WITH(apxs, [ --with-apxs=PATH Path to apxs], [ if test -x "$withval" then AC_MSG_RESULT([$withval executable, good]) APXS=$withval else echo AC_MSG_ERROR([$withval not found or not executable]) fi ], AC_MSG_RESULT(no)) # if no apxs found yet, check /usr/local/apache/sbin # since it's the default Apache location if test -z "$APXS"; then AC_MSG_CHECKING(for apxs in /usr/local/apache/sbin) if test -x /usr/local/apache/sbin/apxs; then APXS=/usr/local/apache/sbin/apxs AC_MSG_RESULT([found, we'll use this. Use --with-apxs to specify another.]) else AC_MSG_RESULT(no) fi fi if test -z "$APXS"; then AC_MSG_CHECKING(for apxs in /usr/local/apache2/bin) if test -x /usr/local/apache2/bin/apxs; then APXS=/usr/local/apache2/bin/apxs AC_MSG_RESULT([found, we'll use this. Use --with-apxs to specify another.]) else AC_MSG_RESULT(no) fi fi if test -z "$APXS"; then AC_MSG_CHECKING(for apxs in /usr/sbin) if test -x /usr/sbin/apxs; then APXS=/usr/sbin/apxs AC_MSG_RESULT([found, we'll use this. Use --with-apxs to specify another.]) else AC_MSG_RESULT(no) fi fi # last resort if test -z "$APXS"; then AC_MSG_CHECKING(for apxs in your PATH) AC_PATH_PROG(APXS, apxs) if test -n "$APXS"; then AC_MSG_RESULT([found $APXS, we'll use this. Use --with-apxs to specify another.]) fi fi if test -z "$APXS"; then AC_MSG_ERROR([**** apxs was not found, DSO compilation will not be available.]) fi # determine LIBEXEC AC_MSG_CHECKING(for Apache libexec directory) LIBEXECDIR=`${APXS} -q LIBEXECDIR` AC_MSG_RESULT($LIBEXECDIR) # determine INCLUDES AC_MSG_CHECKING([for Apache include directory]) AP_INCLUDES="-I`${APXS} -q INCLUDEDIR`" AC_MSG_RESULT($AP_INCLUDES) CFLAGS="$CFLAGS $AP_INCLUDES" AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test "x$PKG_CONFIG" = "xno"; then AC_MSG_ERROR([You need to install pkg-config]) fi PKG_PATH= AC_SUBST(LIBEXECDIR) AC_SUBST(AP_INCLUDES) AC_SUBST(CFLAGS) AC_OUTPUT(Makefile src/Makefile) echo "---" echo "Configuration summary for mod_authn_pop3" echo "" echo " * Apache modules directory = $LIBEXECDIR" echo "" echo "---" echo "****" echo " If you have problems with libtool try this:" echo " export SED=sed" echo "****" |
From: <fir...@us...> - 2003-11-11 02:54:05
|
Update of /cvsroot/mod-auth/mod_authn_pop3/include In directory sc8-pr-cvs1:/tmp/cvs-serv17711/include Log Message: Directory /cvsroot/mod-auth/mod_authn_pop3/include added to the repository |
From: <ho...@us...> - 2003-11-11 00:54:14
|
Update of /cvsroot/mod-auth/mod_auth_webspace/htdocs In directory sc8-pr-cvs1:/tmp/cvs-serv31040 Modified Files: index.xml Log Message: fixed a typo Index: index.xml =================================================================== RCS file: /cvsroot/mod-auth/mod_auth_webspace/htdocs/index.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** index.xml 10 Nov 2003 20:07:37 -0000 1.7 --- index.xml 11 Nov 2003 00:54:11 -0000 1.8 *************** *** 28,32 **** This release is also the first since moving the Project to SourceForge. <a href="http://sourceforge.net/project/showfiles.php?group_id=93106">Download from SourceForge</a> ! If you have any problems or questions with <code>mod_authn_dbi</code> plesae use the <a href='http://lists.sourceforge.net/lists/listinfo/mod-auth-users'>mod-auth-users</a> mailing list. <br/> --- 28,32 ---- This release is also the first since moving the Project to SourceForge. <a href="http://sourceforge.net/project/showfiles.php?group_id=93106">Download from SourceForge</a> ! If you have any problems or questions with <code>mod_authn_dbi</code> please use the <a href='http://lists.sourceforge.net/lists/listinfo/mod-auth-users'>mod-auth-users</a> mailing list. <br/> *************** *** 83,87 **** <!-- Each Major Developer is free to put a short Bio here. --> - <!-- Axel: That means you if you want to :) --> <section id="bio_paul_querna"> --- 83,86 ---- |
From: <ho...@us...> - 2003-11-11 00:03:06
|
Update of /cvsroot/mod-auth/mod_auth_webspace/htdocs/docs/mod_authn_dbi In directory sc8-pr-cvs1:/tmp/cvs-serv21812 Modified Files: index.xml Log Message: more documentation, yay! :-} Index: index.xml =================================================================== RCS file: /cvsroot/mod-auth/mod_auth_webspace/htdocs/docs/mod_authn_dbi/index.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** index.xml 4 Nov 2003 02:22:40 -0000 1.6 --- index.xml 11 Nov 2003 00:03:02 -0000 1.7 *************** *** 123,127 **** these records without having to change the structure of the table. Also, migration from file-based authentication ! (htpasswd,htdigest) is very easy. </p> <p> --- 123,127 ---- these records without having to change the structure of the table. Also, migration from file-based authentication ! (<code>htpasswd</code>,<code>htdigest</code>) is very easy. </p> <p> *************** *** 206,241 **** <section id="advanced"> <title>Advanced configuration of mod_authn_dbi</title> ! </section> ! <directivesynopsis> ! <name>AuthnDbiDriver</name> ! <description>Sets the Driver that DBI Uses.</description> ! <syntax>AuthUserFile <var>mysql|pgsql|sqlite</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p>Docs here</p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiDriverDir</name> ! <description>The directory containing the DBI drivers</description> ! <syntax>AuthnDbiDriverDir <var>PATH</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p> The name of the driver that is passed to libdbi. The default ! value is "<code>mysql</code>". The possible values depend on what ! libdbi drivers you have installed. At the moment, ! libdbi-drivers supports: ! ! <ul> ! <table> <tr><th>Keyword</th><th>Database</th></tr> <tr><td><code>mysql</code></td><td>MySQL</td></tr> --- 206,231 ---- <section id="advanced"> <title>Advanced configuration of mod_authn_dbi</title> ! <p> ! insert kung-foo here... ! </p> </section> ! <directivesynopsis> ! <name>AuthnDbiDriver</name> ! <description>Sets the Driver that DBI Uses.</description> ! <syntax>AuthDbiDriver <var>DbiConfigName</var> <var>mysql|pgsql|sqlite</var></syntax> ! <default>mysql</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! The name of the driver that is passed to libdbi. The default ! value is "<code>mysql</code>". The possible values depend on what ! libdbi drivers you have installed. At the moment, ! libdbi-drivers supports: ! ! <ul> ! <table> <tr><th>Keyword</th><th>Database</th></tr> <tr><td><code>mysql</code></td><td>MySQL</td></tr> *************** *** 244,348 **** <tr><td><code>msql</code></td><td>mSQL</td></tr> </table> ! </ul> ! More drivers should be available soon. ! Check <a ! href="http://libdbi-drivers.sourceforge.net/"><code>http://libdbi-drivers.sourceforge.net/</code></a> ! ! The value is treated by <code>mod_authn_dbi</code> as an opaque string ! which is just passed to <code>libdbi</code>.<br /> ! ! At the moment, only the MySQL driver is really tested, but ! others should work, ymmv... ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiHost</name> ! <description>The host for the database connection</description> ! <syntax>AuthnDbiHost <var>hostname|ip|localhost</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p> This is the hostname of the database host for this configuration. ! Specify a hostname or an IP address. ! Again, this string is just passed to libdbi. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiUsername</name> ! <description>The username for the database connection</description> ! <syntax>AuthnDbiUsername <var>username</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p> The username that is used when logging ! in to the database. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiPassword</name> ! <description>The password for the database connection</description> ! <syntax>AuthnDbiPassword <var>password</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p>The password that is used when logging ! in to the database. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiName</name> ! <description>The name of the database containing the tables</description> ! <syntax>AuthnDbiName <var>database</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p> The name of the database that will be used. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiPasswordQuery</name> ! <description>The SQL query to pick the password field from</description> ! <syntax>AuthnDbiPasswordQuery <var>SQL Query</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p></p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiPasswordFormat</name> ! <description>The format the password is saved as</description> ! <syntax>AuthnDbiPasswordFormat <var>Plain|Apr|AprSHA1|AprDigest</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p>This options specifies the format, value in the ! PasswordField is interpreted as.<br /> ! ! Possible values are: ! <ul> <li><code>Plain</code> --- 234,430 ---- <tr><td><code>msql</code></td><td>mSQL</td></tr> </table> ! </ul> ! More drivers should be available soon. ! Check <a ! href="http://libdbi-drivers.sourceforge.net/"><code>http://libdbi-drivers.sourceforge.net/</code></a> ! ! The value is treated by <code>mod_authn_dbi</code> as an opaque string ! which is just passed to <code>libdbi</code>.<br /> ! ! At the moment, only the MySQL driver is really tested, but ! others should work, ymmv (Success/failure reports are, of course, always welcome). ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiDriverDir</name> ! <description>The directory containing the DBI drivers</description> ! <syntax>AuthnDbiDriverDir <var>PATH</var></syntax> ! <default>none</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! The name of a directory in which libdbi will expect its drivers. If ! this directive is not given, libdbi will use its default,compiled-in ! value. Drivers are are shared objects which end in <code>.so</code>, ! e.g. <code>libmysql.so</code>. Any driver found in this directory can ! later be used by passing its name to <code>AuthnDbiDriver</code>. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiHost</name> ! <description>The host for the database connection</description> ! <syntax>AuthnDbiHost <var>DbiConfigName</var> ! <var>hostname|ip|localhost</var></syntax> ! <default><var>localhost</var></default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! This is the hostname of the database host for this configuration. ! Specify a hostname or an IP address. ! Again, this string is just passed to libdbi. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiUsername</name> ! <description>The username for the database connection</description> ! <syntax>AuthnDbiUsername <var>DbiConfigName</var> ! <var>username</var></syntax> ! <default>root</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! The username that is used when logging-in to the database. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiPassword</name> ! <description>The password for the database connection</description> ! <syntax>AuthnDbiPassword <var>DbiConfigName</var> ! <var>password</var></syntax> ! <default>login without a password</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! The password that is used when logging ! in to the database. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiName</name> ! <description>The name of the database containing the tables</description> ! <syntax>AuthnDbiName <var>DbiConfigName</var> <var>database</var></syntax> ! <default><code>AuthDB</code></default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! The name of the database that will be used. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiPasswordQuery</name> ! <description>The SQL query to pick the password field from</description> ! <syntax>AuthnDbiPasswordQuery <var>DbiConfigName</var> <var>SQL ! Query</var></syntax> ! <default><code>SELECT &{PasswordField} FROM &{Table} WHERE ! &{UsernameField}=&{GivenUsername} LIMIT 0,1</code><br />or<br /> ! <code>SELECT &{PasswordField} FROM &{Table} WHERE ! &{UsernameField}=&{GivenUsername} AND &{IsActiveField}!=0 ! LIMIT 0,1</code><br /> ! </default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! This directive allows you to specify a custom SQL-query that ! mod_authn_dbi will use when authenticating users. It is quite flexible ! and can be used to shoot a lot of problems (including your ! foot). Changing its value may also change the behaviour of ! <code>AuthnDbiUsernameField</code>, <code>AuthnDbiPasswordField</code>, ! <code>AuthnDbiIsActiveField</code>, <code>AuthnDbiTable</code> from ! what is documented in here. ! </p> ! <p> ! For <em>each request</em> that is received (not just at configuration ! time), mod_authn_dbi will go through the following steps: ! <ol> ! <li><b>Replace variables in the query string by their corresponding ! values</b><br /> ! The query string may contain any number of placeholders for variables ! of the format &{<var>variablename</var>}. For each request, this ! placeholder is replaced by the current value. The Variables supported ! variables come from the configuration of mod_authn_dbi or attributes ! of the current request. See below for a list of supported variables ! and their meaning. ! </li> ! <li><b>Execute the query in the database that was configured</b> ! ! </li> ! <li><b>Select from the result the field with the name configured by ! <code>PasswordField</code> (or its default).</b> ! </li> ! <li><b>Interpret the value according to <code>AuthnDbiPasswordFormat</code> and use it for ! authenticating the request.</b> ! </li> ! </ol> ! </p> ! <p> ! <table> ! <tr><th>Variable Name</th><th>Meaning</th></tr> ! <tr><td>AuthName</td><td>The name of the authentication section, ! configured by the <code><a href="http://httpd.apache.org/docs-2.1/mod/core.html#authname">AuthName</a></code> directive.</td></tr> ! <tr><td>ConfigHostname</td><td>The name of the configured host the current request is ! serviced by.</td></tr> ! <tr><td>GivenPassword</td><td>The Password value that was included in ! the request. This is just what the client sent, not checked in any way.</td></tr> ! <tr><td>GivenUsername</td><td>The Username that was included in the ! request. This is just what the client sent, not checked in any way.</td></tr> ! <tr><td>IsActiveField</td><td>The value set by the directive <code>AuthnDbiIsActiveField</code>.</td></tr> ! <tr><td>Name</td><td>The name of the mod_authn_dbi configuration that ! is used for the current request.</td></tr> ! <tr><td>PasswordField</td><td>The value set by the directive <code>AuthnDbiPasswordField</code>.</td></tr> ! <tr><td>PathInfo</td><td>The path info value from the current request.</td></tr> ! <tr><td>Realm</td><td>The Digest realm, only valid for digest authentication.</td></tr> ! <tr><td>RequestArgs</td><td>Any extra arguments supplied by the client ! for this request.</td></tr> ! <tr><td>RequestFile</td><td>The name of the file this request ist for.</td></tr> ! <tr><td>RequestHostname</td><td>The value of the "<code>Host:</code>" ! http field from the current request.</td></tr> ! <tr><td>RequestURI</td><td>The path info from the current request.</td></tr> ! <tr><td>Table</td><td>The name of <code>AuthnDbiTable</code> from the current mod_authn_dbi configuration.</td></tr> ! <tr><td>UsernameField</td><td>The value set by the directive <code>AuthnDbiUsernameField</code>.</td></tr> ! </table> ! This list of variables is just what looked useful at the time of ! coding. Others will be added if requested. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiPasswordFormat</name> ! <description>The format the password is saved as</description> ! <syntax>AuthnDbiPasswordFormat <var>DbiConfigName</var> ! <var>Plain|Apr|AprSHA1|AprDigest</var></syntax> ! <default><code>plain</code></default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p>This options specifies the format, value in the ! PasswordField is interpreted as.<br /> ! ! Possible values are: <ul> <li><code>Plain</code> *************** *** 365,375 **** crypt on Unix only. The formats are exactly the same as are used ! by htdigest. ! ! <br />An example password in crypt format would be: ! <code>O8D24p2LCO7PA</code><br /> ! An example password in md5 format would be: ! <code>$apr1$SvzPV/..$CJl3oQ/ko4Tq5eg6L2Fk..</code><br /> Just specify "Apr" as the AuthnDbiPasswordFormat, --- 447,457 ---- crypt on Unix only. The formats are exactly the same as are used ! by <code>htdigest</code>. ! <br /><br /> ! An example password in crypt format would be: ! <code>O8D24p2LCO7PA</code> ! <br /><br /> An example password in md5 format would be: ! <code>$apr1$SvzPV/..$CJl3oQ/ko4Tq5eg6L2Fk..</code><br /><br /> Just specify "Apr" as the AuthnDbiPasswordFormat, *************** *** 381,388 **** <p> Passwords are in the SHA1 format of libapr-util, ! again like they are used by htpasswd. ! ! <br />An example password in SHA1 format would be: ! <code>sha1:{SHA}C+7Hteo/D9vJXQ3UfzxbwnXaijM=</code><br /> </p> </li> --- 463,471 ---- <p> Passwords are in the SHA1 format of libapr-util, ! again like they are used by <code>htpasswd</code>. ! <br /><br /> ! An example password in SHA1 format would be: ! <code>sha1:{SHA}C+7Hteo/D9vJXQ3UfzxbwnXaijM=</code> ! <br /><br /> </p> </li> *************** *** 390,403 **** <p> The Passwords are in Digest MD5-like format, like ! they are used by the htdigest utility of Apache. ! <br />An example for a password in Digest format would be: ! <code>90b9659ffec980fdfd41f14c31a07887</code><br /> ! Refer to the documentation of htdigest for further information about this format. </p> ! </li> ! </ul> </p> </usage> --- 473,503 ---- <p> The Passwords are in Digest MD5-like format, like ! they are used by the <code>htdigest</code> utility of Apache. ! <br /><br /> ! An example for a password in Digest format would be: ! <code>90b9659ffec980fdfd41f14c31a07887</code> ! <br /><br /> ! Refer to the documentation of <code>htdigest</code> for further information about this format. </p> ! </li> ! </ul> ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiTable</name> ! <description>The name of the table containing the usernames and password hashes</description> ! <syntax>AuthnDbiTable <var>DbiConfigName</var> <var>table</var></syntax> ! <default>Users</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! The name of the table that will be used. </p> </usage> *************** *** 405,536 **** <directivesynopsis> ! <name>AuthnDbiTable</name> ! <description>The name of the table containing the usernames and password hashes</description> ! <syntax>AuthnDbiTable <var>table</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p> The name of the table that will be used. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiUsernameField</name> ! <description>The table field that contains the username</description> ! <syntax>AuthnDbiUsernameField <var>field</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p> The name of the column that mod_authn_dbi will interpret ! as usernames. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiPasswordField</name> ! <description>The table field that contains the password</description> ! <syntax>AuthnDbiPasswordField <var>field</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p> The name of the column that mod_authn_dbi will interpret ! as passwords. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiIsActiveField</name> ! <description>The table field that contains the username</description> ! <syntax>AuthnDbiIsActiveField <var>field</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p>Optionally, the table you use can contain ! an IsActive-Field of integer(!) type. ! If the table-column with the configured ! name contains a 0, the account will be treated ! as disabled and the user not be let in, even ! if the correct password was given. If the column ! contains a different values, the account is seen as ! active. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiConnMin</name> ! <description>The Minimum Number of Database Connections</description> ! <syntax>AuthnDbiConnMin <var>number</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p></p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiConnSoftMax</name> ! <description>The Soft Maximum Number of Database Connections</description> ! <syntax>AuthnDbiConnSoftMax <var>number</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p></p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiConnHardMax</name> ! <description>The Hard Maximum Number of Database Connections</description> ! <syntax>AuthnDbiConnHardMax <var>number</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p></p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiConnTTL</name> ! <description>The database pool time to live for each connection.</description> ! <syntax>AuthnDbiConnTTL <var>seconds</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p></p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiOptions</name> ! <description>A list of options for this configuration</description> ! <syntax>AuthnDbiOptions [<var>AllowEmptyPasswords</var>]</syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p></p> ! </usage> ! </directivesynopsis> </modulesynopsis> --- 505,689 ---- <directivesynopsis> ! <name>AuthnDbiUsernameField</name> ! <description>The table field that contains the username</description> ! <syntax>AuthnDbiUsernameField <var>DbiConfigName</var> <var>field</var></syntax> ! <default>Username</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! The name of the column that mod_authn_dbi will interpret ! as username. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiPasswordField</name> ! <description>The table field that contains the password</description> ! <syntax>AuthnDbiPasswordField <var>DbiConfigName</var> ! <var>field</var></syntax> ! <default>Password</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! The name of the column that mod_authn_dbi will interpret ! as passwords. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiIsActiveField</name> ! <description>The table field that contains the username</description> ! <syntax>AuthnDbiIsActiveField <var>DbiConfigName</var> ! <var>field</var></syntax> ! <default>none</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! Optionally, the table you use can contain ! an IsActive-Field of integer(!) type. ! If the table-column with the configured ! name contains a 0, the account will be treated ! as disabled and the user not be let in, even ! if the correct password was given. If the column ! contains a different values, the account is seen as ! active. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiConnMin</name> ! <description>The Minimum Number of Database Connections</description> ! <syntax>AuthnDbiConnMin <var>DbiConfigName</var> <var>number</var></syntax> ! <default>1</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! See <a ! href="http://apr.apache.org/docs/apr-util/group__APR__Util__RL.html">http://apr.apache.org/docs/apr-util/group__APR__Util__RL.html</a> for now. More info follows soon. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiConnSoftMax</name> ! <description>The Soft Maximum Number of Database Connections</description> ! <syntax>AuthnDbiConnSoftMax <var>DbiConfigName</var> ! <var>number</var></syntax> ! <default>5</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! See <a ! href="http://apr.apache.org/docs/apr-util/group__APR__Util__RL.html">http://apr.apache.org/docs/apr-util/group__APR__Util__RL.html</a> for now. More info follows soon. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiConnHardMax</name> ! <description>The Hard Maximum Number of Database Connections</description> ! <syntax>AuthnDbiConnHardMax <var>DbiConfigName</var> ! <var>number</var></syntax> ! <default>25</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! See <a ! href="http://apr.apache.org/docs/apr-util/group__APR__Util__RL.html">http://apr.apache.org/docs/apr-util/group__APR__Util__RL.html</a> for now. More info follows soon. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiConnTTL</name> ! <description>The database pool time to live for each connection.</description> ! <syntax>AuthnDbiConnTTL <var>DbiConfigName</var> ! <var>seconds</var></syntax> ! <default>600</default> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! See <a ! href="http://apr.apache.org/docs/apr-util/group__APR__Util__RL.html">http://apr.apache.org/docs/apr-util/group__APR__Util__RL.html</a> for now. More info follows soon. ! </p> ! </usage> ! </directivesynopsis> ! ! <directivesynopsis> ! <name>AuthnDbiOptions</name> ! <description>A list of options for this configuration</description> ! <syntax>AuthnDbiOptions <var>DbiConfigName</var> [<var>AllowEmptyPasswords</var>]</syntax> ! <contextlist> ! <context>server config</context> ! </contextlist> ! <usage> ! <p> ! This directive gives a list of options to control the behaviour of a ! dbi-configuration. At the moment, only one option can be given. More ! might follow later. ! ! <table> ! <tr><th>Keyword</th><th>Meaning</th></tr> ! <tr><td><code>AllowEmptyPasswords</code></td><td>If this option is ! given, all accounts that have "<code>::</code>" as password value ! will be accepted with <em>any</em> password that the user ! supplies. With this options, you can for example implement guest-accounts.</td></tr> ! </table> ! </p> ! </usage> ! </directivesynopsis> ! <directivesynopsis> ! <name>AuthnDbiServerConfig</name> ! <description>This directive specifies the configuration to use for an ! authentication section.</description> ! <syntax>AuthnDbiServerConfig <var>DbiConfigName</var></syntax> ! <contextlist> ! <context>directory</context> ! <context>.htaccess</context> ! </contextlist> ! <usage> ! <p> ! This option invokes a configuration that was created with the other ! configuration directives. It is the only directive that may appear in a ! Directory/Location context or <code>.htaccess</code> file. ! <example> ! <pre> ! <Directory "/path/to/htdocs/to/be/area_1_protected"> ! AuthType Digest ! AuthName "digest authn_dbi testing area" ! AuthDigestProvider dbi ! AuthnDbiServerConfig Server1 ! Require valid-user ! </Directory> ! ! <Directory "/path/to/htdocs/to/be/area_2_protected"> ! AuthType Basic ! AuthName "basic authn_mysql testing area" ! AuthBasicProvider dbi ! AuthnDbiServerConfig Server1 ! Require valid-user ! </Directory> ! </pre> ! </example> ! </p> ! </usage> ! </directivesynopsis> </modulesynopsis> |