Symfony2 SecurityController错误

时间:2016-01-31 08:56:55

标签: php symfony authentication

我是symfony的新手,我遵循登录表单教程https://symfony.com/doc/2.8/cookbook/security/form_login_setup.html)但是我收到以下错误:

Uncaught PHP Exception LogicException: "The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?" at /var/www/html/app/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php line 157
Context: { "exception": "Object(LogicException)" }

我使用相同的SecurityController:

class SecurityController extends Controller{


 * @Route("/admin", name="login")

public function loginAction(Request $request)
{

 $authenticationUtils = $this->get('security.authentication_utils');

// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();

// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();

return $this->render(
    'security/login.html.twig',
    array(
        // last username entered by the user
        'last_username' => $lastUsername,
        'error'         => $error,
    )
);
}

/**
 * @Route("/login_check", name="login_check")
 */
public function loginCheckAction()
{
    // this controller will not be executed,
    // as the route is handled by the Security system
}

security.yml

# To get started with security, check out the documentation:

http://symfony.com/doc/current/book/security.html

安全性:

# http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
providers:
    app_users:
         ldap:
             service: app.ldap
             base_dn: DC=corp, DC=int
             search_dn: null
             search_password: null
             filter: (uid={username})
             default_roles: ROLE_USER

firewalls:
    # disables authentication for assets and the profiler, adapt it according to your needs
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    main:
        anonymous: ~
        # activate different ways to authenticate

        # http_basic: ~
        # http://symfony.com/doc/current/book/security.html#a-configuring-how-your-users-will-authenticate

        # form_login: ~
        # http://symfony.com/doc/current/cookbook/security/form_login_setup.html
    secure:
        provider: app_users
        form_login_ldap:
            service: app.ldap
            dn_string: "uid={username},ou=Users,dc=corp,dc=int"
            check_path: login_check
            login_path: admin
        logout: true

1 个答案:

答案 0 :(得分:0)

在security.yml中,尝试替换

check_path: login_check

通过

check_path: /login_check

并按照以下方式制作您的方法:

/**
 * @Route("/login_check", name="login_check")
 */
public function loginCheckAction()
{
    throw new \RuntimeException('You must configure the check path to be handled by the firewall using form_login in your security firewall configuration.');
}