2012-08-03 43 views
6

2 alanlı bir Symfony uygulamasına sahibim, biri AJAX ve web servislerinden API çağrıları için bir web sayfasından diğerine erişen istemciler.2 farklı symfony2 güvenlik duvarında aynı anda nasıl kimlik doğrulanır?

Bu alanların her biri kendi başına bir güvenlik duvarı ile korunur. WEB arayüzü, formda bir günlük ve http_basic ile API ile doğrulanır.

Her iki güvenlik duvarı da iyi çalışıyor, ancak WEB arabirimi, API arabirimine bir AJAX çağrısı yaptığında, tarayıcı, daha önce oturum açmış olsa bile, kullanıcının yeniden oturum açmasını ister (formda oturum açarak). Bundan kaçınmak istediğim şey bu. Bu komut istemini önlemek için her iki güvenlik duvarının da aynı anda doğrulanmasını isterim.

tam olarak aynı soruna sahip başka bir soru gördüm. Ama ikisi de güvenlik duvarları üzerinde http_basic kimlik doğrulaması kullanıyorsanız, bu nedenle, çözüm beni sorgulama Did't çalışmalarını önerdi:

Authenticate multiple symfony2 firewalls with one login form

Benim security.yml

#.... 
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: ~ 

cevap

6

Burada bakmak isteyebilirsiniz: Authenticate multiple symfony2 firewalls with one login form alıntı orada

benzer sorunun çözümü vardır:

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 
+3

Ben bu cevabı alıntı, çok benzer bir sorundur, fark iki farklı kimlik doğrulama yöntemleri (vatansız http temel ve diğer kullanarak çerezleri kullanıyorum) Ive zaten önerilen yapılandırma denedim ama sadece işe yaramadı – Xocoatzin

+1

@ Xocoatzin, farklı kimlik doğrulama yöntemleri, güvenlik duvarları arasında paylaşılan bir bağlama sahip olmak için bir sorun olmamalıdır. Örneğin, standart giriş formu güvenlik duvarı ve SSO sunucusuna karşı kimlik doğrulaması yapan başka biriyle aynı şeyi yapıyorum. Farklı kimlik doğrulama jetonları var. – Dziamid

İlgili konular