chr*_*ian 6 security remember-me symfony silex redbean
我一直在尝试使用RedBean ORM(http://redbeanphp.com)来实现Silex安全提供程序包的UserInterface和UserProviderInterface.
由于RedBean ORM处理其对象函数的方式,我需要将bean对象包装在另一个类中.
这适用于身份验证,但是对于记住我功能的测试失败.
我注意到安全包在链的某个地方序列化对象.
我想也许这就是错误的原因,所以我在我的包装器类中创建了"id"和"password"的属性,并使用__sleep和__wakeup方法在睡眠期间忽略bean并在唤醒时重新加载它.尽管在__wakeup期间一切似乎都正常加载,但"记住我"功能的测试仍然失败.
我已经创建了我的代码的github存储库.如果有人有任何想法,我会非常感激!
出于某种原因,RedBean,Silex和PHPUnit不允许自己被包含在存储库中.一个简单的作曲家更新应该为你拉下来.如果有人有任何想法,我也会感谢你的回答.
github存储库可以在以下位置找到:
https://github.com/christianmagill/silex-redbean-security
适用的文件是
要在数据库中创建测试用户:
/setup.php
要运行测试:
的index.php
我的UserInterface实现:
/src/App/Model/UserSecurityWrapper.php
我的UserProviderInterface的实现:
/src/App/Model/UserProvider.php
我修改过的测试:
/src/App/Test/RememberMeRedBeanServiceProviderTest.php
原始测试:
/vendor/silex/silex/tests/Silex/Tests/Provider/RememberMeServiceProviderTest.php
问题出在我的自定义 UserProvider 的supportsClass 方法上。我没有考虑命名空间。似乎这个函数不是为基本身份验证而调用的,而是“记住我”提供程序所需要的。
| 归档时间: |
|
| 查看次数: |
1038 次 |
| 最近记录: |