结合in_memory和自定义用户提供程序

时间:2014-11-07 18:29:05

标签: symfony authentication in-memory

我有一个自定义用户提供商(让我们称之为MyUserProvider),用于创建自定义用户(MyUserMyOtherUser,具体取决于用户,但从不心神)。通常,此用户提供程序与SSO / CAS身份验证一起使用(通过BeSimpleSSOBundle)。

但是在开发环境中,我无法使用SSO / CAS身份验证,我必须使用其他身份验证。我认为in_memory身份验证没问题。但我仍然需要使用MyUserProvider

问题是如果在我的security_dev.yml文件中我只提及MyUserProvider,则用户不会被认证(security.INFO: Authentication request failed for user "kelux": The presented password is invalid)。为什么?因为MyUser类不知道用户的密码(它被委托给SSO / CAS)。这就是我想使用in_memory的原因。

但我不想单独使用in_memory。如果我这样做,那么将使用的用户是默认的Symfony\Component\Security\Core\User\User,这不是我想要的。

我不想把它们连在一起,因为我希望它们不是一个或另一个。

这是security_dev.yml(与我描述的第一种情况一样):     安全:         编码器:             Alecsia \ AnnotationBundle \ Entity \ MyUser:plaintext

    providers:
       entity:
            id: alecsia.MyUserProvider
    firewalls:
             secured_area:
                 pattern:    ^/
                 http_basic:
                     realm: "Secured Demo Area"

alecsia.MyUserProvider服务按原样描述(它依赖于三个服务来了解它是哪种类型的用户):

services:
    alecsia.Lille1UserProvider:
        class: Alecsia\AnnotationBundle\Security\User\MyUserProvider
        arguments: [@alecsia.MyService,@alecsia.MyOtherService,@alecsia.MyLastService]

那么在使用MyUserProvider时如何提供in_memory身份验证(仅适用于开发环境)?

感谢您的帮助!

0 个答案:

没有答案