Caution: You are browsing the legacy symfony 1.x part of this website.

Il file di configurazione security.yml

1.4
Symfony version
1.2
Language

Il file di configurazione security.yml descrive le regole di autenticazione e autorizzazione per un'applicazione symfony.

tip

Le informazioni di configurazione del file security.yml sono usate dalla classe factory user (predefinita sfBasicSecurityUser). L'esecuzione dell'autenticazione e dell'autorizzazione è fatta dal filtro security.

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: false

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 stesso. 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 a una azione.

note

Il file di configurazione security.yml è memorizzato nella cache come file PHP; il processo è gestito automaticamente dalla classe sfSecurityConfigHandler.

Autenticazione

La configurazione predefinita di security.yml, installato in modo predefinito per ogni applicazione, autorizza l'accesso a chiunque:

default:
  is_secure: false

Con l'impostazione della chiave is_secure su true nel file dell'applicazione security.yml, l'intera applicazione richiederà l'autenticazione per tutti gli utenti.

note

Quando un utente non autenticato prova ad accedere a una azione messa in sicurezza, symfony inoltra la richiesta all'azione login configurata in settings.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: true

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: false

tip

Non è possibile mettere in sicurezza l'azione di login. Questo per evitare una ricorsione infinita.

Autorizzazione

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:   true
  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.