Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 998
Paul Avatar asked Mar 09 '12 12:03

Paul


2 Answers

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
like image 126
Seldaek Avatar answered Oct 25 '22 02:10

Seldaek


For Symfony 2.7+ you should use this configuration:

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

BUT! you also should have PHP 5.5 and Apache 2.4 or Nginx.

like image 39
D.Dimitrioglo Avatar answered Oct 25 '22 03:10

D.Dimitrioglo