CakePHP 2.x自定义“;认证适配器&;引用;LdapAuthorize&;引用;找不到

CakePHP 2.x自定义“;认证适配器&;引用;LdapAuthorize&;引用;找不到,cakephp,authentication,Cakephp,Authentication,我正在使用CakePHP构建一个应用程序,并尝试合并一个自定义身份验证对象,但它似乎无法找到它。我尝试登录时出现以下错误:“未找到身份验证适配器”ldapaauthorize“。我已经用我的代码创建了app/Controller/Component/Auth/ldapaauthorize.php文件,用于身份验证。在“AppController.php”的顶部附近 在AppController类中,我有 public $components = array( 'Session',

我正在使用CakePHP构建一个应用程序,并尝试合并一个自定义身份验证对象,但它似乎无法找到它。我尝试登录时出现以下错误:“未找到身份验证适配器”ldapaauthorize“。我已经用我的代码创建了app/Controller/Component/Auth/ldapaauthorize.php文件,用于身份验证。在“AppController.php”的顶部附近

在AppController类中,我有

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谢谢,我几周前就想出来了,这是根据你的建议。