Вход в Symfony 2 на двух доменах

Мы запускаем приложение 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 и, конечно, логин cookie устанавливается только для домена www.foo.com, Есть ли способ рассказать Symfony о втором домене?

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. Хотя я не уверен, что это будет работать, так как ваши брандмауэры определяются разными хостами и поэтому будут иметь разные куки.

Вот ссылка на контекстную ссылку брандмауэра:

http://symfony.com/doc/current/reference/configuration/security.html#firewall-context

А вот ссылка на все параметры безопасности по умолчанию. Я нахожу это довольно полезным при попытке увидеть, что доступно:

http://symfony.com/doc/current/reference/configuration/security.html#full-default-configuration

Удачи!

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector