I firewall per-host in Symfony2
Domanda
E 'possibile mappare firewall per un determinato host, qualcosa di simile, per esempio:
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
...
Si noti il ??falso "host" param sotto il firewall di amministrazione.
La capacità di firewall limite a particolari host renderebbe facile da utilizzare fornitori su una base per-host. Con domini diversi uno non deve preoccuparsi di sovrapposizione di modelli.
Soluzione
Per il routing host è stato aggiunto in 2.2, il supporto per i firewall per-host sono stati aggiunti in 2.4.
post sul blog di Fabien: http://symfony.com/blog/new-in-symfony-2-4-restrict-security-firewalls-to-specific-hosts
Altri suggerimenti
In sostanza, praticamente qualsiasi schema di autenticazione può essere implementato con il dato concetto di sicurezza. Nel tuo caso si sarebbe probabilmente necessario definire un EntryPoint che controlla anche l'host di un utente proviene. Tuttavia si dovrebbe tenere a mente, che le informazioni "host" non è necessariamente affidabile e probabilmente non dovrebbe essere la vostra unica misura di autenticazione.
Se volete scoprire come implementare uno schema di autenticazione del proprio, controlla lo schema di autenticazione form di login già fornito nel bundle quadro. Un buon posto per iniziare è la fabbrica di sicurezza (Symfony \ Bundle \ SecurityBundle \ DependencyInjection \ Security \ fabbrica \ FormLoginFactory), che gestisce la configurazione dinamica e l'iniezione di tutte le classi coinvolte nel schema di autenticazione. Verificate anche la sezione symfony del libro sulla sicurezza per una vista di alto livello di sicurezza L'architettura di pacchetto.