Symfony链多身份验证侦听器

Symfony链多身份验证侦听器,symfony,authentication,listener,Symfony,Authentication,Listener,我已经用整个shebang(自定义令牌、侦听器、工厂、提供者)实现了自定义身份验证,我将把它作为一个整体调用WebserviceAuthentication 顾名思义,它使用一个定制的Web服务进行身份验证,接收一些API令牌,等等,并且本身工作正常 现在我想使用FOSUserBundle进行身份验证。我已经在security.yml文件中启用了它,下面是清理后的版本。整个要点是在本地进行身份验证,如果验证失败,则使用Web服务进行身份验证 我的两个提供者使用不同的令牌。WebserviceAu

我已经用整个shebang(自定义令牌、侦听器、工厂、提供者)实现了自定义身份验证,我将把它作为一个整体调用WebserviceAuthentication

顾名思义,它使用一个定制的Web服务进行身份验证,接收一些API令牌,等等,并且本身工作正常

现在我想使用FOSUserBundle进行身份验证。我已经在security.yml文件中启用了它,下面是清理后的版本。整个要点是在本地进行身份验证,如果验证失败,则使用Web服务进行身份验证

我的两个提供者使用不同的令牌。WebserviceAuthentication的我的令牌有两个自定义属性,与FOSUserBundle使用的UsernamePasswordToken不同

我的问题是,如何先使用一种身份验证机制,然后再使用第二种身份验证机制?当我现在启用它时,我可以向FOSUserBundle用户进行身份验证,但无法向我的webservice用户进行身份验证

在当前状态下,如果本地身份验证失败,它将尝试调用第二个WebserviceAuthentication提供程序。但是,它
支持()
一个不同的令牌,这意味着它被跳过并且从未被调用

有什么建议吗?有没有办法链接身份验证侦听器,先尝试FOSUser侦听器,然后再尝试Webservice?我之所以想到Listeners,是因为标记最初是在这里创建的。任何建议都将不胜感激

security.yml

 providers:
        #chain_provider:
        #  chain:
        #    providers: [ws_provider, fos_userbundle]
        fos_userbundle:
          id: fos_user.user_provider.username
        ws_provider:
          id: ws.user_provider 
 firewalls:
        ws_secured:
            pattern:   ^/
            logout:
              path:   /logout
              target: /
              success_handler: bo.logout.success.handler
            anonymous: true
            wslogin:
              check_path: /login_check
              login_path: /login
              provider: ws_provider
              default_target_path: /
              success_handler: some.success.handler
            form_login:
              provider: fos_userbundle
              csrf_provider: form.csrf_provider
              failure_handler: some.failure.handler
              success_handler: some.success.handler

您是否尝试链接提供程序而不是身份验证处理程序?我尝试了链接security.yml中的提供程序(已注释掉)。我面临的问题是,每个提供程序都支持不同的令牌,因此当侦听器调用第二个提供程序时,它不支持第一个侦听器创建的令牌。是的,现在我看到了问题,如果您使用的是
2.4
版本,您可以查看此文档,这可能会对你有所帮助我们这里的速度很慢,仍然是2.3。我会调查的,谢谢。与2.4相关的链接没有运气。还在调查这件事。。。