我正在尝试在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身份验证工作吗?
答案 0 :(得分:1)
这是一个严格的php警告。更新插件代码的方法签名以匹配从核心继承的方法的签名,消息将消失。
您也可以disable them,但建议不。出于某种原因存在严格的警告。因此,每当您看到此类警告并完成后,请更新代码。它们也很容易修复。