Code

Fixed kerberos password handling
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Thu, 16 Nov 2006 05:30:24 +0000 (05:30 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Thu, 16 Nov 2006 05:30:24 +0000 (05:30 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@5134 594d385d-05f5-0310-b6e9-bd551577e9d8

include/class_password-methods-kerberos.inc
include/class_password-methods.inc

index 1e8ba722dc1f90c579b81c7b0e6bdfa9a7e4f5bd..e66ebbba969bcaac9b6357ce52622b901ead0a53 100644 (file)
@@ -23,6 +23,7 @@ class passwordMethodkerberos extends passwordMethod
 
        function passwordMethodkerberos($config)  
        {
+    $this->config=$config;
        }
 
   function is_available()
@@ -52,7 +53,7 @@ class passwordMethodkerberos extends passwordMethod
                                print_red (_("Kerberos database communication failed!"));
                        }
 
-                       $ret= kadm5_chpass_principal($handle, $attrs['uid'][0]."@".$cfg['REALM'],$password);
+                       $ret= kadm5_chpass_principal($handle, $this->attrs['uid'][0]."@".$cfg['REALM'],$password);
 
                        if ($ret === FALSE)
                        {
@@ -61,7 +62,7 @@ class passwordMethodkerberos extends passwordMethod
 
                        kadm5_destroy($handle);
 
-                       $newpass= "{kerberos}".$attrs['uid'][0]."@".$cfg['REALM'];
+                       $newpass= "{kerberos}".$this->attrs['uid'][0]."@".$cfg['REALM'];
 
                        return $newpass;       
                }
index 97571da7900f3e6d51f3190319cc0ba9508d6e64..2755134f11c15115fe7420b9ffada04b9da1afc6 100644 (file)
@@ -22,6 +22,7 @@
 class passwordMethod
 {
   var $config = false;
+  var $attrs= array();
 
   // Konstructor
   function passwordMethod($config)
@@ -102,7 +103,7 @@ function change_password ($dn, $password, $mode=0, $hash= "")
 
   // read current password entry for $dn, to detect the encryption Method
   $ldap       = $config->get_ldap_link();
-  $ldap->cat ($dn, array("shadowLastChange", "userPassword"));
+  $ldap->cat ($dn, array("shadowLastChange", "userPassword", "uid"));
   $attrs      = $ldap->fetch ();
 
   // Set encryption type to clear if required 
@@ -124,6 +125,7 @@ function change_password ($dn, $password, $mode=0, $hash= "")
 
     // Crypt with the detected Method
     $test = new  $available[$hash]($config);
+    $test->attrs= $attrs;
     $newpass =  $test->generate_hash($password);
 
   } else {