bugs fixed
This commit is contained in:
		@@ -5,6 +5,7 @@ $ldaptls = "yes";
 | 
			
		||||
$ldapbase = "dc=my,dc=server,dc=com";
 | 
			
		||||
$checkuser = "cn";
 | 
			
		||||
function basicAuth() {
 | 
			
		||||
    global $realm;
 | 
			
		||||
    header('WWW-Authenticate: Basic realm="'.$realm.'"');
 | 
			
		||||
    header('HTTP/1.0 401 Unauthorized');
 | 
			
		||||
    exit;
 | 
			
		||||
@@ -12,7 +13,7 @@ function basicAuth() {
 | 
			
		||||
if (!isset($_SERVER['PHP_AUTH_USER'])) {
 | 
			
		||||
    basicAuth();
 | 
			
		||||
} else {
 | 
			
		||||
    $tstusername = preg_replace('/[^a-z]/', '-', $_SERVER['PHP_AUTH_USER']);
 | 
			
		||||
    $tstusername = $_SERVER['PHP_AUTH_USER'];
 | 
			
		||||
    $password = $_SERVER['PHP_AUTH_PW'];
 | 
			
		||||
    $ldapconn = ldap_connect($ldaphost, 389) 
 | 
			
		||||
        or error_die("connection to LDAP host failed");
 | 
			
		||||
@@ -21,8 +22,14 @@ if (!isset($_SERVER['PHP_AUTH_USER'])) {
 | 
			
		||||
    if ($ldaptls!="no" && $ldaptls!=0 && $ldaptlS)
 | 
			
		||||
        ldap_start_tls($ldapconn)
 | 
			
		||||
            or error_die($ldapconn, "cannot start LDAP TLS");
 | 
			
		||||
    $ldapbind = @ldap_bind($ldapconn, $checkuser.'='.$tstusername.','.$ldapbase, $password)
 | 
			
		||||
        or basicAuth();
 | 
			
		||||
    $username = $tstuserbname;
 | 
			
		||||
    if ($ldapbind = @ldap_bind($ldapconn, $checkuser.'='.$tstusername.','.$ldapbase, $password)) {
 | 
			
		||||
        ldap_close($ldapconn);
 | 
			
		||||
        $username = $tstusername;
 | 
			
		||||
    } else {
 | 
			
		||||
        error_log("user login failed: ".$checkuser.'='.$tstusername.','.$ldapbase);
 | 
			
		||||
        error_log(ldap_error($ldapconn));
 | 
			
		||||
        ldap_close($ldapconn);
 | 
			
		||||
        basicAuth();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
		Reference in New Issue
	
	Block a user