brian 96/06/30 15:36:59
Modified: src mod_auth_msql.c
Log:
Submitted by: "Dirk.vanGulik" <[EMAIL PROTECTED]>
Updated module from Dirk - more backwards-Vitek-compatibility issues
addressed.
Revision Changes Path
1.9 +25 -19 apache/src/mod_auth_msql.c
Index: mod_auth_msql.c
===================================================================
RCS file: /export/home/cvs/apache/src/mod_auth_msql.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C3 -r1.8 -r1.9
*** mod_auth_msql.c 1996/06/17 20:52:05 1.8
--- mod_auth_msql.c 1996/06/30 22:36:57 1.9
***************
*** 284,289 ****
--- 284,295 ----
* Replaced some MAX_STRING_LENGTH claims.
* 1.0 removed some error check as they where already done elsehwere
* NumFields -> NumRows (Thanks Vitek). More stack memory.
+ * 1.1 no logging of empty password strings.
+ * 1.2 Problem with the Backward vitek which cause it to check
+ * even if msql_auth was not configured; Also more carefull
+ * with the authorative stuff; caught by [EMAIL PROTECTED]
+ * 1.3 Even more changes to get it right; that BACKWARD thing was a bad
+ * idea.
*/
***************
*** 392,400 ****
#include "http_log.h"
#include "http_protocol.h"
#include <msql.h>
- #ifdef HAVE_CRYPT_H
#include <crypt.h>
- #endif
typedef struct {
--- 398,404 ----
***************
*** 778,788 ****
* We do not check on dbase, group, userid or host name, as it is
* perfectly possible to only do group control with mSQL and leave
* user control to the next (dbm) guy in line.
*/
! if (
! (!sec->auth_msql_pwd_table) &&
! (!sec->auth_msql_pwd_field)
! ) return DECLINED;
if(!(real_pw = get_msql_pw(r, c->user, sec,msql_errstr ))) {
if ( msql_errstr[0] ) {
--- 782,791 ----
* We do not check on dbase, group, userid or host name, as it is
* perfectly possible to only do group control with mSQL and leave
* user control to the next (dbm) guy in line.
+ * We no longer check on the user field name; to avoid problems
+ * with Backward VITEK.
*/
! if (!sec->auth_msql_pwd_table) return DECLINED;
if(!(real_pw = get_msql_pw(r, c->user, sec,msql_errstr ))) {
if ( msql_errstr[0] ) {
***************
*** 809,816 ****
--- 812,821 ----
*/
if ((sec->auth_msql_nopasswd) && (!strlen(real_pw))) {
+ /*
sprintf(msql_errstr,"mSQL: user %s: Empty/'any' password
accepted",c->user);
log_reason (msql_errstr, r->uri, r);
+ */
return OK;
};
***************
*** 862,867 ****
--- 867,875 ----
char *t, *w;
msql_errstr[0]='\0';
+ /* If we are not configured, ignore */
+ if (!sec->auth_msql_pwd_table) return DECLINED;
+
if (!reqs_arr) {
if (sec->auth_msql_authorative) {
sprintf(msql_errstr,"user %s denied, no access rules specified
(MSQL-Authorative) ",user);
***************
*** 929,953 ****
};
}
! /* we do not have to check the valid-ness of the group result as
! * have not (yet) a 'valid-group' token
*/
! if ( (user_result != OK) && (sec->auth_msql_authorative) ) {
! sprintf(msql_errstr,"User %s denied, no access rules applied
(MSQL-Authorative) ",user);
log_reason (msql_errstr, r->uri, r);
- note_basic_auth_failure(r);
return AUTH_REQUIRED;
};
! /* if the user is DECLINED, it is up to the group_result to tip
! * the balance. But if the group result is AUTH_REQUIRED it should
! * always override. A SERVER_ERROR should not get here.
! */
! if ( (user_result == DECLINED) || (group_result == AUTH_REQUIRED))
! return group_result;
!
! return user_result;
}
--- 937,959 ----
};
}
! /* Get serious if we are authorative, previous
! * returns are only if msql yielded a correct result.
! * This really is not needed.
*/
! if (((group_result == AUTH_REQUIRED) || (user_result == AUTH_REQUIRED))
&& (sec->auth_msql_authorative) ) {
! sprintf(msql_errstr,"mSQL-Authorative: Access denied on %s %s
rule(s) ",
! (group_result == AUTH_REQUIRED) ? "USER" : "",
! (user_result == AUTH_REQUIRED) ? "GROUP" : ""
! );
log_reason (msql_errstr, r->uri, r);
return AUTH_REQUIRED;
};
+ if ( (user_result == OK) || (group_result == OK))
+ return OK;
! return DECLINED;
}