我们正在运行一个Symfony 2.1应用程序,让我们说域名www.foo.com
在那里登录根本不是问题。但我们有第二个网站www.bar.com
,基本上只有www.foo.com/bar
并且代理重写
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$ [NC]
RewriteRule ^(.*) http://www.foo.com/bar$1 [L,P,NE]
除登录外,这也像魅力一样。我总是被重定向到www.foo.com/login
,然后当然只为域www.foo.com
设置了登录cookie。有没有办法告诉Symfony关于第二个域?
答案 0 :(得分:2)
可悲的是,Symfony 2.1已经很老了,因此在升级之前,下面描述的功能将无法使用。 2.7将于月底发布,并且它是LTS版本,因此可能是这样做的好时机。
我相信您要寻找的是辅助站点的单独防火墙。在Symfony中,您可以通过主机名定义防火墙:
http://symfony.com/doc/current/cookbook/security/firewall_restriction.html#restricting-by-host
所以你可能有:
security:
firewalls:
foo_site:
host: ^foo\.com$
# ...
bar_site:
host: ^bar\.com$
# ...
如果您想同时登录两者,则可以将防火墙的上下文设置为相同。默认情况下,上面两个防火墙的上下文将是foo_site和bar_site。虽然我不确定这是否可行,因为防火墙是由不同的主机定义的,因此会有不同的cookie。
以下是防火墙上下文参考的链接:
http://symfony.com/doc/current/reference/configuration/security.html#firewall-context
这是所有默认安全选项的链接。我发现在尝试查看可用内容时非常有用:
http://symfony.com/doc/current/reference/configuration/security.html#full-default-configuration
祝你好运!