在symfony 2.1中登录失败后不重定向到登录页面
登录失败后,应用程序不会重定向到登录页面。以下是我的security.yml配置:在symfony 2.1中登录失败后不重定向到登录页面,symfony,symfony-2.1,Symfony,Symfony 2.1,登录失败后,应用程序不会重定向到登录页面。以下是我的security.yml配置: security: encoders: Acme\SecurityBundle\Entity\Users: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER providers: main: entity: { class: Acme\SecurityBundle\Entity\Users} firewalls:
security:
encoders:
Acme\SecurityBundle\Entity\Users: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
providers:
main:
entity: { class: Acme\SecurityBundle\Entity\Users}
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/login$
security: false
secured_area:
pattern: ^/admin/
form_login:
check_path: /login_check
login_path: /login
logout:
path: /logout
target: /home
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
这是我的控制器:
class LoginController extends Controller {
/**
* @Route("/login",name="login")
*/
public function loginAction() {
//displays login form and renders the login.html.twig
}
/**
* @Route("/login_check", name="login_check")
*/
public function loginCheckAction() {
// The security layer will intercept this request
}
登录失败后,我得到的错误为:
The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?
500 Internal Server Error - LogicException
我尝试了symfony附带的演示中的登录部分。我发现了同样的结果。
登录失败后,为了重定向到登录表单,我应该做什么修改?您不需要为登录和注销操作创建控制器类。您只需要在
routing.yml
中指定这些路由,类似于:
login_path:
pattern: /login
login_check_path:
pattern: /admin/login_check
logout_path:
pattern: /admin/logout
这些路由由安全组件自动处理
在防火墙配置中,您的检查路径应定义为/admin/login\u check
。注销路径应为/admin/logout