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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow