2013-03-14 99 views
6

我一直在嘗試使用RedBean ORM(http://redbeanphp.com)來實現Silex安全提供程序包的UserInterface和UserProviderInterface。Silex/Symfony2記住我身份驗證用戶界面RedBean包裝

由於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

原測試:

/供應商/硅石/硅石/測試/捷希凱/測試/ Provider/RememberMeServiceProviderTest.php

回答

3

問題在於我的自定義UserProvider的supportsClass方法。我沒有考慮到名稱空間。看起來這個函數不是基本認證所要求的,但是記住我的提供者需要這個函數。

相關問題