我遇到了symfony security + fos用户包的问题。 我找不到任何人复制我的问题,只有类似的问题,但解决方案不起作用。 除注册/重置/登录网址外,所有页面都必须加以保护。
当我去/登录时,网址是“受保护的”,除非我将其添加到我的注册防火墙。这有效,直到我尝试登录,然后它说我需要将登录路径添加到主防火墙。
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 }
答案 0 :(得分:0)
通过将^ 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 }