Přihlášení přes LDAP

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
TFSi
Člen | 23
+
0
-

Zdravím,
narazil jsem na menší problém. V jedné aplikaci používám přihlášení pomocí LDAPu, což samo o sobě funguje. Zároveň ale používáme Centreon na monitorování sítě, který se také loguje pomocí LDAPu. Pokud mám ale v jednom prohlížeči přihlášený Centreon (mám prakticky pořád) a pokusím se zalogovat ve zmíněné aplikaci, tak skončím s:

Fatal error: Function __autoload(CentreonACL) threw an exception of type 'Exception' in /srv/www/htdocs/xxx/App/loader.php on line 5445

Pro přihlášení mám sesmoleno toto (pracovní verze):

<?php
class Auth extends Object implements IAuthenticator {

  private static $server = '110.1.1.20';
  private static $port = '389';
  private static $ver = 3;

  public function authenticate(array $credentials) {
    $username = strtolower($credentials[self::USERNAME]);
    $password = $credentials[self::PASSWORD];

    $result = dibi::query('SELECT [role] FROM [users] WHERE [username]=%s LIMIT 1', $username);
    if(count($result)) { // Uživatel je v databázi, pokračuje ověření přes LDAP
      /**/
      $connect = ldap_connect(self::$server, self::$port); // Připojení k LDAP serveru
      ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, self::$ver); // Nastavení verze protokolu
      ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
      $bind = @ldap_bind($connect, $username, $password);
      if($bind) {
        return new Identity($username, $result->fetchSingle());
      }
      /**/
    }
  }
}

Takže se evidentně Centreon s Nette nemají rádi :( a potřebuji je nějak „skamarádit“ :)
Používám mini verzi Nette 0.9.2 pro PHP5.2, na serveru mám Apache2.2.13, PHP5.2.5, SLES10

Díky za případnou pomoc

Editoval TFSi (9. 1. 2010 21:42)