【问题标题】:Silex / Symfony2 Remember Me Authentication User Interface RedBean WrapperSilex / Symfony2 Remember Me 身份验证用户界面 RedBean Wrapper
【发布时间】:2013-03-14 03:06:01
【问题描述】:

我一直在尝试使用 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

【问题讨论】:

    标签: security symfony silex remember-me redbean


    【解决方案1】:

    问题出在我的自定义 UserProvider 的 supportsClass 方法上。我没有考虑命名空间。似乎此函数不是为基本身份验证调用的,而是记住我提供程序所需要的。

    【讨论】:

      猜你喜欢
      • 2021-09-12
      • 1970-01-01
      • 2020-11-04
      • 2019-07-31
      • 1970-01-01
      • 2018-06-04
      • 2012-04-28
      • 2020-05-06
      • 1970-01-01
      相关资源
      最近更新 更多