Szukaj…
Zarządzanie bezpieczeństwem
Bezpieczeństwo było częścią ciemnej strony dokumentacji symfony, ma dedykowany komponent o nazwie Security Component .
Ten komponent jest skonfigurowany w pliku security.yml głównego projektu aplikacji.
Domyślna konfiguracja wygląda następująco:
# app/config/security.yml
security:
providers:
in_memory:
memory: ~
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
anonymous: ~
Można zdefiniować określone zapory ogniowe, aby ograniczyć dostęp do niektórych adresów URL do określonych ról w oparciu o hierarchię dla użytkowników zdefiniowanych przez dostawcę i kodery zarządzające zabezpieczeniem hasłem.
Na przykład, jeśli chcesz utworzyć niestandardowego dostawcę , na podstawie silnika bazy danych możesz zdefiniować security.yml w następujący sposób:
providers:
your_db_provider:
entity:
class: AppBundle:User
property: apiKey
Jest to szczegółowo opisane w dokumentacji symfony: Jak zdefiniować niestandardowego UserProvider i na przykład z bazy danych lub z LDAP .
Następnie można zdefiniować zaporę ogniową, aby ograniczyć niektóre adresy URL w oparciu o niestandardowego dostawcę użytkownika (security.yml) wyraźnie w następujący sposób:
firewalls:
secured_area:
pattern: ^/admin
Lub z kontrolą dostępu :
access_control:
- { path: ^/admin/users, roles: ROLE_SUPER_ADMIN }
- { path: ^/admin, roles: ROLE_ADMIN }
Zobacz więcej szczegółowej dokumentacji tutaj .
Najlepszym sposobem zarządzania użytkownikiem jest użycie FosUserBundle, który rozszerza niektóre funkcjonalności frameworka.