Symfony + fosuserbundle + проблема безопасности с брандмауэрами
У меня возникли проблемы с Symfony security + fos user bundle. Я не смог найти никого, кто бы повторил мою проблему, только похожие проблемы, но решения не работают. Все страницы, включая / должны быть защищены, кроме регистрации / сброса / URL-адреса входа.
Когда я захожу в / вход в систему, URL-адрес "защищен", если я не добавлю его в свой брандмауэр регистрации. это работает до тех пор, пока я не попытаюсь войти в систему, а затем он говорит, что мне нужно добавить путь для входа в главный брандмауэр
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
registration:
pattern: ^/(login|register|resetting)
security: false
main:
pattern: ^/
http_basic: ~
form_login:
provider: fos_userbundle
csrf_provider: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/(_(profiler|wdt)|css|images|js), role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
1 ответ
Решение
Исправлено путем ограничения шаблона ^login до ^login$, чтобы login_check по-прежнему передавался на главный брандмауэр.
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/login$
security: false
registration:
pattern: ^/(register|resetting)
security: false
main:
pattern: ^/
http_basic: ~
form_login:
provider: fos_userbundle
csrf_provider: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/(_(profiler|wdt)|css|images|js), role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }