我正在尝试通过在Symfony2中执行安全性来跟进我购买的一些教程,但是我得到了这个错误。
应用程序/配置/ security.yml
firewalls:
# ...
secured_area:
pattern: ^/
form_login:
check_path: /login_check
login_path: /login
logout:
path: /logout
target: /
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
# ...
/src/SF2/UserBundle/Resources/config/routing.yml
UserBundle:
resource: "@UserBundle/Resources/config/routing/user.yml"
prefix: /
/src/SF2/UserBundle/Resources/config/routing/user.yml
user_login:
path: /login
defaults: { _controller: "UserBundle:Login:login" }
user_login_check:
path: /login_check
defaults: { _controller: "UserBundle:Login:loginCheck" }
以上是我的路线和安全配置。现在,我要显示的表单。
{% extends '::layout.html.twig' %}
{% block title 'Login' %}
{% block body %}
<div class="container">
{% if error %}
<div>
{{ error.message }}
</div>
{% endif %}
<form action="{{ login_check }}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" class="form-control"/>
<label for="password">Password:</label>
<input type="text" id="password" name="_password" class="form-control"/>
<button type="submit" class="btn btn-primary">Login</button>
</form>
</div>
{% endblock %}
来自loginAction
的{{1}}与Symfony的官方网站中提供的相同,loginController
为空。我正在按照教程的说明进行操作,但我对路线略有不同。他使用了注释,但我想使用YML文件,因为我发现它更有条理。
当我尝试访问loginCheckAction
时发生错误。如果我从中移除安全配置和/login
,一切正常。
我能错过什么?
答案 0 :(得分:0)
我有解决方案。我必须将anonymous: ~
放入secured_area
。感谢@malcolm向我展示官方文档。