user_login() was not converted to using get_cache_flags().

It was still using the 'old' get_config() interface, so the 'cookie'
set by ntlmsso_finish() wasn't retrieved at all, and the automatic
login always failed.

Signed-off-by: Iñaki Arenaza <[email protected]>


Author: Iñaki Arenaza <[email protected]>
Committer: Martin Langhoff <[email protected]>
This commit is contained in:
martinlanghoff
2007-11-19 02:43:48 +00:00
parent 58eada356d
commit 0cbcc8efc1
+22 -27
View File
@@ -95,42 +95,37 @@ class auth_plugin_ldap extends auth_plugin_base {
//
$key = sesskey();
if (!empty($this->config->ntlmsso_enabled) && $key === $password) {
if ($cookie = get_config('auth/ldap/ntlmsess', $key)) {
// These checks match the work done
if (preg_match('/^(\d+):(.+)$/',$cookie,$matches)) {
// $matches[0] is the whole matched string...
$time = $matches[1];
$sessusername = $matches[2];
if (((time() - ((int)$time)) < AUTH_NTLMTIMEOUT)
&& $sessusername === $username) {
$cf = get_cache_flags('auth/ldap/ntlmsess');
// We only get the cache flag if we retrieve it before
// it expires (AUTH_NTLMTIMEOUT seconds).
if (!isset($cf[$key]) || $cf[$key] === '') {
return false;
}
unset($cookie);
unset($time);
unset($sessusername);
$sessusername = $cf[$key];
if ($username === $sessusername) {
unset($sessusername);
unset($cf);
// Check that the user is inside one of the configured LDAP contexts
$validuser = false;
$ldapconnection = $this->ldap_connect();
if ($ldapconnection) {
// if the user is not inside the configured contexts,
// ldap_find_userdn returns false.
if ($this->ldap_find_userdn($ldapconnection, $extusername)) {
$validuser = true;
}
ldap_close($ldapconnection);
}
// Shortcut here - SSO confirmed
return $validuser;
// Check that the user is inside one of the configured LDAP contexts
$validuser = false;
$ldapconnection = $this->ldap_connect();
if ($ldapconnection) {
// if the user is not inside the configured contexts,
// ldap_find_userdn returns false.
if ($this->ldap_find_userdn($ldapconnection, $extusername)) {
$validuser = true;
}
ldap_close($ldapconnection);
}
// Shortcut here - SSO confirmed
return $validuser;
}
} // End SSO processing
unset($key);
$ldapconnection = $this->ldap_connect();
if ($ldapconnection) {
$ldap_user_dn = $this->ldap_find_userdn($ldapconnection, $extusername);