私はCakePHPプロジェクトに取り組んでおり、現在、そのユーザ認証部分を構築中です。問題は私の認証情報(パスワードなど)がデータベースに保存されていないことです。認証ソースはLDAPですが、私の質問は非データベースソースにも等しく適用されます。CakePHP(LDAP)の代替認証ソース
Cakeは、ローカルデータベースに存在する場合にのみパスワードを処理するように見えます。 The Cake Cookbook suggests$this->Auth->authorize
変数を使用して認可手順を提供するために別のコントローラ/モデル/オブジェクトに伝えることができますが、コードを見ると(具体的にはthe Auth::startup()
function)、Cakeは常にデータベースをクエリしようとします最初に一致するユーザー名/パスワードを入力してから、Auth->authorize
で指定した代替オブジェクトを探します。つまり、authorize
を変更すると、第2レベルのフィルタが追加されるだけで、データベース参照が置き換えられることはありません。
// The process
1. User provides details
2. Cake checks the database
3. If OK, then check the custom object method
4. If OK, return true
// What I'd like:
1. User provides details.
2. Check the custom object method
3. If OK, return true
4. Profit.
コアファイルをハッキングしないでこれを行うにはどうすればよいですか?
+1 – Stephen