Search code examples
symfonyfosuserbundle

FOSUserBundle no encoder has been configured : creating a new user


i would like to create a new user in FOSUserBundle (Symfony2), but i always get the same message (i'm using php app/console fos:user:create ) :

No encoder has been configured for account "MyProject\UserBundle\Entity\User".

the imports are in the right order

public function registerBundles()
{
    $bundles = array(
        //...
        new MyProject\UserBundle\MyProjectUserBundle(),
        new FOS\UserBundle\FOSUserBundle(),
    );

the security file :

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

but i'm always getting the same error... Do you know how to fix this? The solution here is not working for me

Thanks


Solution

  • You are missing your own user's class in the encoders configuration, for example:

    security:
        encoders:
            Symfony\Component\Security\Core\User\User: plaintext
            MyProject\UserBundle\Entity\User: sha512
    

    Alternatively you can match it on the FOSUserBundle interface like so:

    security:
        encoders:
            Symfony\Component\Security\Core\User\User: plaintext
            FOS\UserBundle\Model\UserInterface: sha512