2013-03-14 2 views
6

Я пытаюсь использовать RedBean ORM (http://redbeanphp.com) для реализации UserInterface и UserProviderInterface пакета Silex Security Provider Package.Silex/Symfony2 Запомнить меня Пользовательский интерфейс аутентификации RedBean Wrapper

Из-за того, как RedBean ORM обрабатывает функции для своих объектов, мне нужно было обернуть объект bean в другой класс.

Это отлично работает для аутентификации, но не позволяет проверить функциональность Remember Me.

Я заметил, что где-то вдоль цепи пакет безопасности сериализует объект.

Я подумал, что, возможно, это послужило причиной ошибки, поэтому я создал свойства для «id» и «password» в моем классе-оболочке и использовал методы __sleep и __wakeup для игнорирования компонента во время сна и перезагрузки его при пробуждении. Несмотря на то, что все, что кажется правильно загружено во время __wakeup, тест для функции «Запомнить меня» по-прежнему не работает.

Я создал репозиторий github моего кода. Если у кого есть какие-то идеи, я буду очень благодарен!

По какой-то причине RedBean, Silex и PHPUnit не позволяют себе быть включенными в репозиторий. Простое обновление композитора должно вывести их за вас. Если у кого-то есть идеи, я бы тоже признателен за ответ.

Репозиторий GitHub можно найти по адресу:

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

Соответствующие файлы

Для создания тестового пользователя в базе данных:

/setup.php

Для запуска теста:

/index.php

Моей реализация пользовательского интерфейса:

/src/App/Model/UserSecurityWrapper.php

Моей реализация UserProviderInterface:

/src/App/Model/UserProvider.php

Мой модифицированный тест:

/src/App/Test/RememberMeRedBeanServiceProviderTest.php

Оригинальный тест:

/продавец/кремнезем/кремнезем/тесты/Silex/Тесты/Provider/RememberMeServiceProviderTest.php

ответ

3

Проблема была связана с моим пользовательским методом поддержки UserProvider.Я не принимал во внимание пространство имен. Похоже, эта функция не предназначена для базовой аутентификации, но необходима для того, чтобы запомнить меня провайдера.

Смежные вопросы