我有一个运行Symfony2的站点需要登录。 这样的防火墙设置如下:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
pattern: ^/
entry_point: security_user.authentication.entry_point
ntlm: ~
fr3d_ldap: ~
form_login:
check_path: /login_check
login_path: /login
#always_use_default_target_path: true
use_referer: true
success_handler: security_user.login.success_handler
default_target_path: /
logout:
path: /logout
target: /
success_handler: security_user.logout.handler
invalidate_session: true
anonymous: ~
我想在不登录的情况下打开特定页面的访问权限。 我尝试添加firewal:
my_firewall:
context: my_context
pattern: ^/url-to-open.*$
anonymous: true
但我仍然会被重定向到登录页面。 我错过了什么? 感谢
答案 0 :(得分:1)
您不需要新的防火墙,只需设置access_control即可。 在下面的例子中,未经身份验证的用户可以访问路径包含“/ some_path”表达式的所有路由。你应该有关于Security和How access_controll works
的Symfony docfirewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
pattern: ^/
entry_point: security_user.authentication.entry_point
ntlm: ~
fr3d_ldap: ~
form_login:
check_path: /login_check
login_path: /login
#always_use_default_target_path: true
use_referer: true
success_handler: security_user.login.success_handler
default_target_path: /
logout:
path: /logout
target: /
success_handler: security_user.logout.handler
invalidate_session: true
anonymous: ~
access_control:
- { path: /some_path, role: IS_AUTHENTICATED_ANONYMOUSLY }