Security 如何同时在2个不同的symfony2防火墙上进行身份验证?

Security 如何同时在2个不同的symfony2防火墙上进行身份验证?,security,authentication,symfony,firewall,Security,Authentication,Symfony,Firewall,我有一个Symfony应用程序,有两个区域,一个用于客户端从网页访问,另一个用于来自AJAX和web服务的API调用 每个区域都有自己的防火墙保护。WEB界面通过登录表单和API通过http\u basic进行身份验证 两种防火墙都可以正常工作,但当WEB界面对API界面进行AJAX调用时,浏览器会提示用户再次登录,即使用户已经登录(通过登录表单)。这就是我想要避免的。我希望同时对两个防火墙进行身份验证,以防止出现此提示 我看到另一个问题与完全相同。但是他们在两个防火墙上都使用了http\u b

我有一个Symfony应用程序,有两个区域,一个用于客户端从网页访问,另一个用于来自AJAX和web服务的API调用

每个区域都有自己的防火墙保护。WEB界面通过登录表单和API通过
http\u basic
进行身份验证

两种防火墙都可以正常工作,但当WEB界面对API界面进行AJAX调用时,浏览器会提示用户再次登录,即使用户已经登录(通过登录表单)。这就是我想要避免的。我希望同时对两个防火墙进行身份验证,以防止出现此提示

我看到另一个问题与完全相同。但是他们在两个防火墙上都使用了
http\u basic
身份验证,因此,提出的解决方案在我的案例中不起作用:

我的安全

#....
firewalls:
    api:
        pattern:    ^/API
        context: primary_auth
        stateless:  true
        http_basic: 
            realm: "API: Please log in"

    web:
        pattern:    ^/
        context: primary_auth
        form_login:
            check_path: /login_check
            login_path: /login
            provider: fos_userbundle
        logout:
            path:   /logout
            target: /
        anonymous: ~

你可能想看看这里:这里有类似问题的解决方案

引述:

security:
# providers etc ...

    firewall:
        main:
            pattern: # ...
            provider: my_users
            http_basic: ~
            context: primary_auth  # new
        api:
            pattern: # ...
            provider: my_users
            http_basic: ~
            context: primary_auth  # new

我引用了这个答案,这是一个非常相似的问题,不同的是im使用了两种不同的身份验证方法(无状态http basic和另一种使用cookies)。我已经尝试了建议的配置,但它只是不起作用out@Xocoatzin,不同的身份验证方法不应该成为防火墙之间共享上下文的问题。例如,我正在对标准登录表单防火墙和另一个针对SSO服务器进行身份验证的防火墙执行相同的操作。它们具有不同类型的身份验证令牌。