我正在尝试在Symfony中启动并运行非常基本的安全性。我的security.yml
文件中包含以下代码段。
firewalls:
secured_area:
pattern: ^/
form_login:
check_path: /login_check
login_path: /login
logout:
path: /logout
target: /
anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
access_control:
- { path: ^/new, roles: ROLE_USER }
- { path: ^/create, roles: ROLE_USER }
但是,我仍然可以访问以下网址:http://events.local/app_dev.php/event/new,但未经过身份验证。有什么想法可能会发生这种情况吗?
答案 0 :(得分:1)
^/new
与/event/new
不匹配,因为^
表示/new
必须是路径的开头。
尝试^/event/new
,我认为您的问题将得到解决。
来自http://symfony.com/doc/current/book/security.html:
使用^预先添加路径可确保仅匹配以模式开头的URL。例如,简单/ admin(没有^)的路径将正确匹配/ admin / foo,但也会匹配/ foo / admin等网址。