Symfony2中的每个主机防火墙

时间:2011-11-30 04:56:46

标签: php symfony

是否可以将防火墙映射到给定的主机,例如:

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    admin:
        pattern: ^/
        host: admin.mysite.com
        http_basic:
            provider: in_memory
            realm: 'MySite Admin'
        logout: 
    main:
        pattern: ^/
        anonymous: ~
        form_login:
            provider: fos_userbundle
        ...

请注意管理防火墙下的虚假“主机”参数。

将防火墙限制到特定主机的能力可以轻松地在每个主机的基础上使用提供程序。对于不同的域,人们不必担心重叠模式。

2 个答案:

答案 0 :(得分:2)

2.2中添加了每个主机路由,在2.4中添加了对每个主机防火墙的支持。

Fabien的博文:http://symfony.com/blog/new-in-symfony-2-4-restrict-security-firewalls-to-specific-hosts

答案 1 :(得分:1)

基本上,几乎任何认证方案都可以使用给定的安全概念来实现。在您的情况下,您可能需要定义一个EntryPoint,它还会检查用户来自的主机。 但是,您应该记住,“主机”信息不一定值得信赖,可能不是您唯一的身份验证措施。

如果您想了解如何实现自己的身份验证方案,请查看框架包中已提供的表单登录身份验证方案。一个好的起点是安全工厂(Symfony \ Bundle \ SecurityBundle \ DependencyInjection \ Security \ Factory \ FormLoginFactory),它处理动态配置和注入认证方案中涉及的所有类。 另请查看symfony book's section on security以获取安全捆绑包架构的高级视图。