я имею 2 межсетевых экрана (один для Панель администратора и один для Зарегистрированные пользователи) а также 2 провайдера в памяти (один для админ и один для Зарегистрированные пользователи) для моего приложения Symfony2 — слишком динамично, а?
Теперь я попытался получить доступ к маршруту для Зарегистрированные пользователи, Boom! Мне предложили диалог BasicAuth, как и ожидалось.
Далее, когда я пытался получить доступ к маршруту для админ, Мне снова предлагают другой диалог BasicAuth — как и ожидалось.
Тем не менее, когда я возвращаюсь к любому Зарегистрированные пользователи‘маршрут, мне снова предоставляют диалоговое окно BasicAuth, к которому я делаю вывод, что каждый раз, когда меня запрашивают мои учетные данные в диалоговом окне аутентификации брандмауэра, которое соответствует маршруту, по которому я иду, я автоматически выходил из другого брандмауэра.
Вот мой security.yml
файл.
security:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
providers:
walang_forever:
memory:
users:
user:
password: test
roles: 'ROLE_USER'
nailad_forever:
memory:
users:
admin:
password: test
roles: 'ROLE_ADMIN'
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin_gugma:
pattern: ^/admin
http_basic:
provider: nailad_forever
main_gugma:
pattern: ^/user
http_basic:
provider: walang_forever
encoders:
Symfony\Component\Security\Core\User\User: plaintext
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/user, roles: ROLE_USER }
Все, что я хочу, это просто один раз войти в систему через брандмауэр.
Какие-нибудь подобные события? Или предлагаемое решение?
Используйте invalidate_session: false в обоих настройках брандмауэра выхода из системы:
logout:
path: mylogoutpath
target: MyBundle_homepage
invalidate_session: false
Invalidate_session: false делает свое дело.
Увидеть: https://codedump.io/share/OfziwjHXBHbB
Других решений пока нет …