我编写了一个应用程序,其中我需要保护所有内容(登录页面除外)并重定向到登录。我尝试了来自http://symfony.com/doc/master/book/security.html的解决方案(避免常见的陷阱 - >确保登录页面不安全)但它对我没有帮助 - 我的请求仍然被重定向到无限循环。
这是我的security.yml文件的firewalls
部分:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/login$
security: false
secured_area:
pattern: .*
anonymous: ~
form_login:
login_path: login
check_path: login_validation
success_handler: authentication_handler
remember_me:
key: "%secret%"
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~ # Defaults to the current domain from $_SERVER
提前感谢您的帮助。
编辑:我当然希望只有登录和完全通过身份验证的用户才能访问。
答案 0 :(得分:0)
我相信您也需要允许匿名访问您的检查路径。
答案 1 :(得分:0)
进入security.yml
firewalls:
main:
pattern: .*
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
default_target_path: /index #everything you want to redirect after login to
always_use_default_target_path: true
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/.*, role: ROLE_USER } #is just a role example, change it
这样就可以了解
您错过了第二部分(access_control
one),它将触发此防火墙捕获的firewall
事件(在这种情况下为main
)