如何使用不同的security.yml文件/安全设置?

时间:2016-12-07 19:45:47

标签: security configuration kernel symfony sonata

我有Symfony3项目,我希望从主要应用程序中完全分离Sonata管理包。主要应用程序和奏鸣曲用户是不同的实体,永远不会交叉。此外,所有安全设置都是独立且不同的。此外,将来还会有另一个管理子系统 - 与当前应用程序的另一个方面完全不同。

我考虑不同的环境或覆盖内核(通过this方法)并且需要知道如何为每个环境指定安全设置(如果它是正确的方法并且不会炸毁框架)或者通过以下方式选择重写内核。或者......你知道做什么的方法。

我的Symfony版本是3.1。

1 个答案:

答案 0 :(得分:2)

除了现有的proddevtest之外,您还可以创建新的环境,如文档How to Master and Create new Environments中所述。这将允许您访问新的配置文件(config_[your_new_environment].yml),该文件又可以在security.yml语句中完全加载不同的imports文件并覆盖默认值。

示例:

// config_sonata.yml

imports:
    - { resource: config.yml }
    - { resource: security_sonata.yml }

在您的情况下,我首先会调查使用不同的防火墙作为主security.yml文件的一部分。如果您希望在不同应用中保护的网址不重叠,则只需add more firewallsuser providers即可。这应该可以满足您的所有需求,并将所有内容保存在一个地方。