Symfony4 разные конфигурации безопасности для разных сред - PullRequest
0 голосов
/ 16 мая 2018

Я уже видел инструкции по выполнению этого в Symfony 3.4, но я не могу понять, как это сделать в Symfony 4. У меня есть пользовательская среда, и когда разработчик устанавливает APP_ENV в эту среду, я хочу другой безопасности.yaml для использования.Скажем, например, я создал конфигурационную среду «local», когда у меня есть config / packages / local / security.yaml и APP_ENV = local, мое приложение по умолчанию все еще имеет конфигурацию config / packages / security.yaml.Я хочу, чтобы config / packages / security.yaml полностью игнорировался в пользу config / packages / local / security.yaml.

Вот мой prod/security.yaml:

security:
    providers:
        shibboleth:
            id: App\Security\User\ShibbolethUserProvider
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            stateless: true
            anonymous: ~
            guard:
                authenticators:
                    - app.shibboleth_authenticator

            logout:
                path: /logout
                success_handler: app.shibboleth_authenticator

    access_control:
        - { path: ^/result, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_USER }

А здесьмой local/security.yaml:

security:
    providers:
        in_memory: { memory: ~ }
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: ~

1 Ответ

0 голосов
/ 17 мая 2018

В Symfony4 вы разбиваете свою конфигурацию на папки среды. Что вы хотите сделать, это, вероятно, следующее:

.
└── config
    └── packages
        ├── dev
        ├── local
        │   └── security.yaml
        ├── prod
        │   └── security.yaml
        └── tests

Это работает благодаря этой строке внутри вашего Kernel.php https://github.com/symfony/recipes/blob/34fc4212d838ac6c49a2b9892e2aa1d926149192/symfony/framework-bundle/3.3/src/Kernel.php#L48

$loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob');
...