![]() |
|
The symfony Reference BookIl file di configurazione security.yml |
|
You are currently reading "The symfony Reference Book" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

|
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. |
Il file di configurazione security.yml descrive le regole di autenticazione
e autorizzazione per una applicazione symfony.
Le informazioni di configurazione del file
security.ymlsono usate dalla classe factoryuser(predefinitasfBasicSecurityUser). L'esecuzione dell'autenticazione e dell'autorizzazione è fatta dasecurityfilter.
Quando un'applicazione è creata, symfony genera un file predefinito
security.yml nella cartella dell'applicazione config/ che descrive la sicurezza per
l'intera applicazione (sotto la chiave default):
default: is_secure: off
Come discusso in sede di introduzione, il file security.yml trae benefici dal
meccanismo di configurazione a cascata,
e può includere costanti.
La configurazione predefinita dell'applicazione può essere sovrascritta per un modulo,
creando un file security.yml nella cartella config/ del modulo. Le
chiavi principali sono nomi di azioni senza il prefisso execute (ad esempio index
per il metodo executeIndex).
Per determinare se una azione è sicura o no, symfony cerca le informazioni nel seguente ordine:
una configurazione per l'azione specifica nel file della configurazione del modulo, se esiste;
una configurazione per l'intero modulo nel file di configurazione del modulo,
se esiste (sotto la chiave all);
la configurazione predefinita dell'applicazione (sotto la chiave default).
Le stesse regole di precedenza sono usate per determinare le credenziali necessarie per accedere ad una azione.
Il file di configurazione
security.ymlè memorizzato nella cache come file PHP; il processo è gestito automaticamente dalla classesfSecurityConfigHandler.
La configurazione predefinita di security.yml, installato in modo predefinito per ogni
applicazione, autorizza l'accesso a chiunque:
default: is_secure: off
Con l'impostazione della chiave is_secure su on nel file dell'applicazione
security.yml, l'intera applicazione richiederà l'autenticazione per tutti gli utenti.
Quando un utente non autenticato prova ad accedere ad una azione messa in sicurezza, symfony inoltra la richiesta all'azione
loginconfigurata insettings.yml.
Per modificare i requisiti di autenticazione di un modulo, creare un file security.yml
nella cartella config/ del modulo e definire una chiave all:
all: is_secure: on
Per modificare i requisiti di autenticazione di una singola azione di un modulo, creare
un file security.yml nella cartella config/ del modulo e definire una
chiave dopo il nome dell'azione:
index: is_secure: off
Non è possibile mettere in sicurezza l'azione di login. Questo per evitare una ricorsione infinita.
Quando un utente è autenticato, l'accesso ad alcune azioni può essere maggiormente limitato definendo delle credenziali. Quando le credenziali sono definite, un utente deve avere le credenziali richieste, per accedere all'azione:
all: is_secure: on credentials: admin
Il sistema di credenziali di symfony è semplice e potente. Una credenziale è una stringa che può rappresentare tutto quello di cui si ha bisogno per descrivere il modello di sicurezza dell'applicazione (come gruppi e permessi).
La chiave credentials supporta operazioni booleane per descrivere complessi
requisiti di credenziali, utilizzando la notazione array.
Se un utente deve avere la credenziale A e la credenziale B, inserire le credenziali con parentesi quadre:
index: credentials: [A, B]
Se un utente deve avere la credenziale A o la credenziale B, inserire le credenziali con due paia di parentesi quadre:
index: credentials: [[A, B]]
È possibile anche mischiare e combinare parentesi per descrivere ogni tipo di espressione booleana con qualunque numero di credenziali.
If you find a typo or an error, please register and open a ticket.
If you need support or have a technical question, please post to the official user mailing-list.