правила доступа Symfony по умолчанию для новой страницы - PullRequest
0 голосов
/ 13 марта 2019

в моем приложении Symfony я использую FOSUserBundle для аутентификации пользователей.Контроль доступа производится по правилам security.yml.Проблема в том, что когда я создаю новую страницу (с новой маршрутизацией), и она не включается в security.yml, доступ к этой странице предоставляется автоматически, и любой пользователь может иметь доступ к ней, пока она не будет опубликована в security.yml.Как предотвратить такое поведение и сделать все мои новые страницы, когда они не отображаются в security.yml за брандмауэром по умолчанию?Я попытался добавить следующую строку в раздел access_control:

access_control:
    - { path: ^/$, role: ROLE_BASE_USER } 

, но это не сработало.Есть идеи как это сделать?Спасибо.

1 Ответ

0 голосов
/ 13 марта 2019

Вам необходимо создать новый firewall rule с pattern и добавить prefix к вашим защищенным и незащищенным маршрутам:

security:

    .
    . Some other settings here
    .

    firewalls:
        public_area:
            pattern:  ^/public
            stateless: true
            anonymous: true
            provider: entity_provider

         private_area:
            pattern:  ^/private
            stateless: true
            anonymous: true
            provider: entity_provider

    access_control:
        - { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST] }
        - { path: ^/private, roles: IS_AUTHENTICATED_FULLY }
        - { path: ^/private/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST] }

Подробнее вы можете прочитать здесь

этот код является лишь примером, он может содержать ошибки :) Конечно, вы можете удалить префикс из незащищенного брандмауэра.

Для упрощения кода вы можете объявить префиксы в одном месте - /config/routes/annotations.yaml:

controllers:
    resource: ../../src/Controller/
    type: annotation

page1:
    prefix: /page
    resource: App\Controller\Page1Controller

page2:
    prefix: /page
    resource: App\Controller\Page2Controller

page3:
    prefix: /page
    resource: App\Controller\Page3Controller
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...