2011-11-30 5 views
5

E 'possibile mappare firewall per un determinato host, qualcosa di simile, per esempio:Per-ospite dei firewall in Symfony2

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
    admin: 
     pattern: ^/ 
     host: admin.mysite.com 
     http_basic: 
      provider: in_memory 
      realm: 'MySite Admin' 
     logout: 
    main: 
     pattern: ^/ 
     anonymous: ~ 
     form_login: 
      provider: fos_userbundle 
     ... 

nota il falso param "host" sotto il firewall di amministrazione.

La possibilità di limitare i firewall a particolari host faciliterebbe l'utilizzo dei provider su base host. Con domini diversi non ci si deve preoccupare di schemi sovrapposti.

+1

Symfony 2.2 sarà in grado di instradare sulla base di nomi host. Sto ancora controllando se i firewall avranno la stessa funzionalità e torneranno con i risultati. – GergelyPolonkai

risposta

1

Fondamentalmente, praticamente qualsiasi schema di autenticazione può essere implementato con il concetto di sicurezza fornito. Nel tuo caso dovresti probabilmente definire un EntryPoint che controlli anche l'host da cui proviene un utente. Tuttavia, dovresti tenere presente che le informazioni "host" non sono necessariamente affidabili e probabilmente non dovrebbero essere l'unica misura di autenticazione.

Se si desidera scoprire come implementare uno schema di autenticazione personalizzato, consultare lo schema di autenticazione di accesso al modulo già fornito nel pacchetto framework. Un buon punto di partenza è il factory di sicurezza (Symfony \ Bundle \ SecurityBundle \ DependencyInjection \ Security \ Factory \ FormLoginFactory) che gestisce la configurazione dinamica e l'iniezione di tutte le classi coinvolte nello schema di autenticazione. Controllare anche il symfony book's section on security per una vista di alto livello dell'architettura del bundle di sicurezza.