原因は不明です。少しコアな部分を調べましたが、分かりませんでした。
デフォルトの設定が原因なのか、単純にバグだったのか分かりませんが、今回、CakePHP1.3.12で試したところマニュアル通り機能したので、改めて書きます。
こちらは以前と同じ仕様です。「users」テーブルに「username」と「password」のカラムを持たせます。
以前はパスワードを入力するフォームに「name="data[User][password]"」とすると、コントローラでうまく受理できない現象が発生してので、通常のポストで取得するという方法で回避していました。
しかし、今回CakePHP1.3.12では問題なく処理できたので、以下のように記述します。
アクション「login」について、以前はパスワードをPOSTリクエストで取得し、暗号化してDBの内容と比較するという、独自の認証判定処理を記述していました。しかし、今回それが改善されていたことで、一連のロジックはCakePHPで処理されるため、独自で処理を記述する必要はありません。
つまり以下の通りです。もちろん、必要に応じて他の独自の処理を追加することも可能です。
Authコンポーネントを使った基本的な認証機能の実装のみであれば、これらを一通り用意すれば動作します。
以前は、自身で回避策に手間を取られましたが。ここまでソースをスマートにできて、実装できてこそ、フレームワークの恩恵を感じれますね。