CakePHP 2.x自定义“;认证适配器&;引用;LdapAuthorize&;引用;找不到
我正在使用CakePHP构建一个应用程序,并尝试合并一个自定义身份验证对象,但它似乎无法找到它。我尝试登录时出现以下错误:“未找到身份验证适配器”ldapaauthorize“。我已经用我的代码创建了app/Controller/Component/Auth/ldapaauthorize.php文件,用于身份验证。在“AppController.php”的顶部附近 在AppController类中,我有CakePHP 2.x自定义“;认证适配器&;引用;LdapAuthorize&;引用;找不到,cakephp,authentication,Cakephp,Authentication,我正在使用CakePHP构建一个应用程序,并尝试合并一个自定义身份验证对象,但它似乎无法找到它。我尝试登录时出现以下错误:“未找到身份验证适配器”ldapaauthorize“。我已经用我的代码创建了app/Controller/Component/Auth/ldapaauthorize.php文件,用于身份验证。在“AppController.php”的顶部附近 在AppController类中,我有 public $components = array( 'Session',
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'pendings', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'users', 'action' => 'login'),
'authorize' => array('Controller'),
'authenticate' => array('LdapAuthorize')
)
);
然后在我的UsersController.php中,我有以下登录函数
public function login() {
if($this->request->is('post')) {
if($this->Auth->login()) {
// My Login stuff...
}
else
$this->redirect(array('controller'=>'someController', 'action'=>'someAction'));
}
}
如果有人知道为什么它不能加载我的自定义身份验证对象,那就太棒了。谢谢 我认为你的
App::uses()
是错误的,因此它找不到类。您当前的代码:
App::uses('LdapAuthroize', 'Controller/Component/Auth/LdapAuthorize');
正在尝试查找控制器/Component/Auth/LdapAuthorize/LdapAuthroize.php
第一个参数是类名(您有一个输入错误),第二个参数只是包含类的目录的路径,您不需要再次添加类名
试试这个:
App::uses('LdapAuthorize', 'Controller/Component/Auth');
我认为你的
App::uses()
是错误的,因此它找不到类。您当前的代码:
App::uses('LdapAuthroize', 'Controller/Component/Auth/LdapAuthorize');
正在尝试查找控制器/Component/Auth/LdapAuthorize/LdapAuthroize.php
第一个参数是类名(您有一个输入错误),第二个参数只是包含类的目录的路径,您不需要再次添加类名
试试这个:
App::uses('LdapAuthorize', 'Controller/Component/Auth');
我将自定义身份验证类放在控制器/组件/身份验证中。例如,我的类的名称是CustomUserAuthenticate,文件的路径是 控制器/Component/Auth/CustomUserAuthenticate.php 然后在我的AppController中,我将以下内容添加到
authenticate
数组中
class AppController extends Controller {
public $components = array(
'Auth' => array(
/** Any other configuration like redirects can go here */
'authenticate' => array(
'CustomUser'
)
)
);
}
authenticate
数组中的字符串必须与类的名称匹配(authenticate单词除外)
MyCustomUserAuthenticate类扩展了CakePHP的Controller/Component/Auth/BaseAuthenticate并重写了
authenticate
方法。CakePHP的文档声明这不是。我还没有尝试过这种方法。我将自定义身份验证类放在了控制器/组件/Auth中。例如,我的类的名称是CustomUserAuthenticate,文件的路径是
控制器/Component/Auth/CustomUserAuthenticate.php
然后在我的AppController中,我将以下内容添加到authenticate
数组中
class AppController extends Controller {
public $components = array(
'Auth' => array(
/** Any other configuration like redirects can go here */
'authenticate' => array(
'CustomUser'
)
)
);
}
authenticate
数组中的字符串必须与类的名称匹配(authenticate单词除外)
MyCustomUserAuthenticate类扩展了CakePHP的Controller/Component/Auth/BaseAuthenticate并重写了
authenticate
方法。CakePHP的文档声明这不是。我还没有试过那样做。谢谢您的回复!我不敢相信我漏掉了那个打字错误,但这是我第500次写出那一行。不幸的是,我似乎仍然得到同样的错误。还有其他建议吗?@Jonheller您是否也将第二个参数更改为Controller/Component/Auth
?谢谢您的回复!我不敢相信我漏掉了那个打字错误,但这是我第500次写出那一行。不幸的是,我似乎仍然得到同样的错误。还有其他建议吗?@Jonheller您是否也将第二个参数更改为Controller/Component/Auth
?您是否找到了解决方案?@ElliotVargas您是否有解决方案,因为上述方法不起作用,我也有同样的问题?@DeAn我刚刚添加了一个,看看它是否对您有用。@ElliotVargas谢谢,我几周前就想出来了,这是根据你的建议。你找到解决办法了吗?@ElliotVargas你有解决办法吗,因为上面的方法不起作用,我也有同样的问题吗?@DeAn我刚刚加了一个,看看它对你是否有用。@ElliotVargas谢谢,我几周前就想出来了,这是根据你的建议。