如何修复LdapAuthenticate :: getUser()应该兼容...错误?

时间:2013-08-08 18:28:06

标签: php cakephp authentication ldap

我正在尝试在this example之后实现CakePHP Ldap身份验证,但我收到此错误:

  

严格(2048):LdapAuthenticate :: getUser()的声明应该是   兼容BaseAuthenticate :: getUser(CakeRequest $ request)   [APP \插件\ Idbroker \控制器\元器件\验证\ LdapAuthenticate.php,   第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来说太新了,无法找到修复此问题的最佳方法。 the example中的步骤看似简单。 我的离开the example在App / Config / database.php中,我更改了内容(主机,端口等)以匹配我的Web服务器和App / Config / ldap。我删除了除了这个之外的所有内容:

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

the CakePHP 2.0 example我应该使用当前版本的CakePHP(2.3.1)吗?有没有我错过的东西?还有另一种更简单的方法可以让CakePHP Ldap身份验证工作吗?

1 个答案:

答案 0 :(得分:1)

这是一个严格的php警告。更新插件代码的方法签名以匹配从核心继承的方法的签名,消息将消失。

您也可以disable them,但建议。出于某种原因存在严格的警告。因此,每当您看到此类警告并完成后,请更新代码。它们也很容易修复。