Пользовательский провайдер сущностей в symfony: нет провайдера пользователя для пользователя \\Entity\User

Я только что реализовал функциональность входа в систему, аналогичную этому руководству http://symfony.com/doc/current/cookbook/security/entity_provider.html , но когда я пытаюсь войти в систему, я получаю:

"There is no user provider for user "App\SomeBundle\Entity\User"" 

Мой репозиторий реализует требуемый интерфейс, ссылки на пользовательские сущности в репозиторий, а в security.yml я определил провайдера, как в примере для настраиваемого провайдера сущностей. Я потерялся, почему есть ошибка.

В security.yml у меня есть:

security:
    encoders:
        \App\SomeBundle\Entity\User: sha512
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ...

    providers:
        main:
            entity: { class: AppSomeBundle:User }

    ...

Заголовок пользовательского объекта:

    /**
     * App\SomeBundle\Entity\User
     *
     * @ORM\Table(
     *     name="user",
     *     uniqueConstraints={
     * @ORM\UniqueConstraint(name="email_unique", columns={"user_email"})
     *     }
     * )
     * @ORM\Entity(repositoryClass="App\SomeBundle\EntityRepository\UserRepository")
 */
class User implements UserInterface, EquatableInterface, \Serializable
{

И заголовок репозитория:

class UserRepository extends EntityRepository implements UserProviderInterface
{

Спасибо за помощь.


person Petr Jirásek    schedule 21.09.2013    source источник


Ответы (1)


Попробуйте удалить ведущую \ из кодировщика и использовать то же имя класса в операторе провайдера.

Это из моей собственной конфигурации безопасности:

security:
    encoders:
        App\SomeBundle\Entity\User:
            algorithm: sha512
            iterations: 1024
            encode_as_base64: true

    providers:
        user_db:
            entity: { class: App\SomeBundle\Entity\User, property: username }

    role_hierarchy:
person ritter    schedule 22.09.2013
comment
Если я хочу использовать пользовательский репозиторий сущностей, я не могу использовать атрибут свойства в соответствии с руководством. Несмотря на это изменение, есть та же ошибка. - person Petr Jirásek; 22.09.2013