0

この例に従ってCakePHP Ldap認証を実装しようとしていますが、このエラーが発生しています:

Strict (2048): LdapAuthenticate::getUser() の宣言は BaseAuthenticate::getUser(CakeRequest $request) [APP\Plugin\Idbroker\Controller\Component\Auth\LdapAuthenticate.php, line 5] と互換性がある必要があります

エラーのコンテキストは次のとおりです。

App::uses('BaseAuthenticate', 'Controller/Component/Auth');

class LdapAuthenticate extends BaseAuthenticate {
$className = 'LdapAuthenticate'
$parts = array(
    (int) 0 => 'Idbroker',
    (int) 1 => 'Controller/Component/Auth'
)
$plugin = 'Idbroker'
$package = 'Controller/Component/Auth'
$file = ...Plugin\Idbroker\Controller\Component\Auth\LdapAuthenticate.php'
$paths = array(
    (int) 0 => ...Plugin\Idbroker\Controller\Component\Auth\',
    (int) 1 => ...Plugin\Idbroker\Lib\Controller/Component/Auth\',
    (int) 2 => ...Plugin\Idbroker\Controller/Component/Auth\'
)
$pluginPath = 'C:\csvn\www\KMDEV\app\Plugin\Idbroker\'
$normalizedClassName = 'LdapAuthenticate'
$path = '...Plugin\Idbroker\Controller\Component\Auth\'
include '...Plugin\Idbroker\Controller\Component\Auth\LdapAuthenticate.php line 5
App::load() - CORE\Cake\Core\App.php, line 561
spl_autoload_call - [internal], line ??
class_exists - [internal], line ??

LdapAuthenticate::getUser()と同じ署名を持っていない ことがわかりますBaseAuthenticate::getUser(CakeRequest $request)が、これを修復する最善の方法についての手がかりを得るには、PHP と CakePHP にはあまりにも新しいものです。この例の手順は単純に見えます。例からの唯一逸脱は、App/Config/database.php で、コンテンツ (ホスト、ポートなど) を Web サーバーと一致するように変更し、App/Config/ldap.php でこれ以外のすべてを削除しました。

<?php
$config['LDAP']['Db']['Config'] = 'ldap';
$config['LDAP']['User']['Identifier'] = 'samAccountName';

私が使用している CakePHP 2.0 の例は、現在のバージョンの CakePHP (2.3.1) で動作するはずですか? 私が見逃したものはありますか?CakePHP Ldap 認証を機能させる別の簡単な方法はありますか?

4

1 に答える 1