2015年5月20日

CakePHPにAjaxで連続リクエストするとダメなの?

 どうしたものかと悩んでします。

 CakePHPで動作しているサーバーに対してAjaxを使って連続リクエストをすると403のステータスが返ってくる場合がある現象に遭遇しました。

 直接の原因は、AuthComponentクラスの_getUserメソッドで認証済みのユーザ情報が取得できないために、次の処理の_unauthenticatedメソッド内で403を返却してしまっているようです。

もしかしてだけど、もしかしてだけどー。
 軽くソースを見たところ認証ユーザ情報をセッションから取ってきているようです。現在セッションは、ファイルに保存するようにしているのでそこが問題なのかもしれないです。例えば、セッションを読む時にロック掛けて他からさわることができないうにするため、取得できずに何も返さないとか。


 どこで「通常ではないこと」が発生しているかはわかったので対策を建てることはできるかもしれませんが、フレームワーク内を修正するわけにもいかないので困っています。

 とりあえず対応として、業務アプリケーション内で対応することはできているので最悪の自体は回避できてはいます。



 セッション毎の問題のようなのでフレームワークを別のものにするとかはしなくても良さそうです。

関連記事
CakePHPでセッションがよく切れてしまうのを回避

0 件のコメント:

コメントを投稿