2013-03-14 15 views
6

私はRedBean ORM(http://redbeanphp.com)を使用して、SilexセキュリティプロバイダパッケージのUserInterfaceとUserProviderInterfaceを実装しようとしています。Silex/Symfony2 Remember Me認証ユーザーインターフェイスRedBean Wrapper

RedBean ORMがそのオブジェクトの関数を処理する方法のため、別のクラスにBeanオブジェクトをラップする必要がありました。

これは認証には適していますが、Remember Me機能のテストには失敗します。

セキュリティパッケージがチェーンのどこかでオブジェクトをシリアル化していることに気付きました。

私はこれがエラーの理由だと思っていたので、私はラッパークラスの "id"と "password"のプロパティを作成し、__sleepメソッドと__wakeupメソッドを使ってスリープ中にBeanを無視してwakeupでリロードしました。 __wakeup中にすべてが正しくロードされているように見えるにもかかわらず、 "Remember Me"機能のテストはまだ失敗しています。

自分のコードのgithubリポジトリを作成しました。誰かがアイデアを持っているなら、私はそれを感謝します!

何らかの理由で、RedBean、Silex、およびPHPUnitは、リポジトリに自身を含めることができません。シンプルな作曲家のアップデートはあなたのためにそれらをプルダウンする必要があります。なぜ誰かが何らかのアイデアを持っていれば、私はそれにも感謝しています。

githubのリポジトリはで見つけることができます:

/setup.php:該当のファイルは、データベース内のテストユーザーを作成するには

ある

https://github.com/christianmagill/silex-redbean-security

/index.php

たUserInterfaceの私の実装:

/src/App/Model/UserSecurityWrapper.php

UserProviderInterfaceの私の実装:テストを実行するには

/src/app/model/userProvider.php

マイ変性試験:

/src/App/Test/RememberMeRedBeanServiceProviderTest.php

オリジナルテスト:

/ベンダー/サイレックス/サイレックス/試験/サイレックス/テスト/ Provider/RememberMeServiceProviderTest.php

答えて

3

問題は、私のカスタムUserProviderのsupportsClassメソッドにありました。名前空間を考慮していませんでした。この関数は基本認証のために呼び出されていないようですが、Remember Meプロバイダには必要です。

関連する問題