folgendes findet sich mehrfach in conlib/local.php
Code: Alles auswählen
while($this->db->next_record()) {
$uid = $this->db->f("user_id");
$perm = $this->db->f("perms");
$pass = $this->db->f("password"); ## Password is stored as a md5 hash
if (is_array($auth_handlers))
{
if (in_array($pass, $auth_handlers))
{
$success = call_user_func($pass, $username, $password);
if ($success)
{
$uid = md5($username);
$pass = md5($password);
}
}
}
}
Code: Alles auswählen
/* Registers an external auth handler */
function register_auth_handler($handler)
{
global $auth_handlers;
if (!is_array($auth_handlers))
{
$auth_handlers = array();
}
if (!in_array($handler, $auth_handlers))
{
$auth_handlers[] = $handler;
}
}
jetzt komm ich zum bug...
da $pass immer ein md5 kodierter wert ist, kann das hier
if (in_array($pass, $auth_handlers))
nie stimmen...
die funktion müsste dann
function *md5 kodierter wert des handlers* () { }
heissen....
entweder ist das in der doku(Pluggable Authentification) falsch beschrieben, oder der code wurde in der form noch eingesetzt als das pw noch nicht md5 kodiert war...