FOSUserBundle no encoder has been configured : creating a new user

Paul picture Paul · Mar 9, 2012 · Viewed 24k times · Source

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

Answer

Seldaek picture Seldaek · Mar 9, 2012

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