symfony2 - 具有多个用户提供程序的多个编码密码方法

时间:2012-09-05 14:53:18

标签: security symfony symfony-2.1

我希望使用两种不同的编码密码方法链接两个用户提供程序(FosUserBundle和一个自定义数据库用户提供程序)

应用程序/配置/ security.yml

security:  

    encoders:
        FOS\UserBundle\Model\UserInterface: sha512
        My\AuthBundle\Model\User: sha1

    providers:
        my_chain_providers:
            chain:
                providers: ["fos_userbundle", "db_user"]
        fos_userbundle:
            id: fos_user.user_provider.username_email
        db_user:
            propel:
                class: My\AuthBundle\Model\User
                property: username

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: my_chain_providers
            logout:       true
            anonymous:    true

我的问题:密码的哈希遵循$ password。' {'。$ salt。'}'在我的自定义数据库用户提供程序中的fos_user表和$ salt。$ password中

这个要点https://gist.github.com/1243080展示了如何自定义mergePasswordAndSalt方法,但每个用户提供商可以有一个mergePasswordAndSalt方法吗?

1 个答案:

答案 0 :(得分:1)

您应该将多个编码器与FOSAdvancedEncoderBundle结合使用。我遇到了同样的问题,并且回答得很漂亮over here