2013-08-07 71 views
0

我正在構建一個應用程序,使用CakePHP並嘗試合併自定義身份驗證對象,但它似乎無法找到它。當我嘗試登錄時:「身份驗證適配器" LdapAuthorize " was not found」。我創建了文件app/Controller/Component/Auth/LdapAuthorize.php用我的身份驗證代碼。「AppController.php」我有CakePHP 2.x自定義「身份驗證適配器" LdapAuthorize "未找到

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

和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'));   
     } 
    } 

如果任何人有任何想法,爲什麼它似乎無法加載我的自定義認證對象將是很棒的。謝謝!

+0

你有沒有找到解決這個問題的方法? –

+0

@ElliotVargas你有解決方案,因爲上述沒有工作,我有同樣的問題? –

+0

@DeAn我剛添加了一個[answer](http://stackoverflow.com/a/19522786/2024),看看它對你有用。 –

回答

2

我把我的自定義的驗證類中控制器/組件/驗證。例如,我的類的名稱是CustomUserAuthenticate和文件路徑是,

控制器/組件/認證/ 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數組中的字符串必須除身份驗證字類的名稱相匹配。

CustomUserAuthenticate類擴展CakePHP的控制器/組件/認證/ BaseAuthenticate並覆蓋authenticate方法。 CakePHP的文檔指出這不是required。我沒有嘗試過這種方式。

2

我認爲你的App::uses()是錯誤的,所以它找不到類。您當前的代碼:

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

正在試圖尋找控制器/組件/認證/ LdapAuthorize/LdapAuthroize.php

第一個參數是類的名字(你有一個錯字),第二隻是包含類的目錄的路徑,您不需要再次添加類名稱。

試試這個:

App::uses('LdapAuthorize', 'Controller/Component/Auth'); 
+0

感謝您的迴應!我不能相信我錯過了那個錯字,但是這是第500次寫出這一行。不幸的是我似乎仍然得到同樣的錯誤。還有其他建議嗎? –

+0

@JonHaller你是否也改變了第二個參數到'Controller/Component/Auth'? – BadHorsie