(Symfony 2.3) 无法使用默认用户身份验证提供程序成功登录


(Symfony 2.3) unable to log in successfully with the default user authentication provider

我在使用UserAuthenticationProvider时遇到了问题。我正在使用 Doctrine 持久性,每次都收到Bad credentials错误,即使用户有效。

数据库包含以下字段:用户名密码, *date_created*, *date_modified*在注册时填充得很好。

经过一番研究,我发现UserAuthenticationProvidercheckAuthentication($user, $token);失败了,Bad credentials error is thrown afterwards.

路由.yml

login:
    path:     /auth/login
    defaults: { _controller: WebsiteStaticBundle:Auth:login }
check_login:
    path:     /auth/do_login
    defaults: { _controller: WebsiteStaticBundle:Auth:doLogin }

security.yml

security:
role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
    administrators:
        entity: { class: AuthBundle:Account }
encoders:
    API'AuthBundle'Entity'Account:
        algorithm: sha1
        iterations: 1
        encode_as_base64: false
firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false
    login:
        pattern:  ^/demo/secured/login$
        security: false
    secured_area:
        pattern:    ^/
        anonymous: ~
        form_login:
            login_path:   login
            check_path:   check_login
        logout:
            path:   /logout
            target: /
access_control:
    - { path: ^/demo/secured/hello/admin/, roles: ROLE_ADMIN }
    - { path: ^/restricted, roles: ROLE_ADMIN }
    - { path: ^/dashboard, roles: ROLE_ADMIN }

控制器

...
public function loginAction()
{
    $request = $this->getRequest();
    $session = $request->getSession();
    // get the login error if there is one
    if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
        $error = $request->attributes->get(
            SecurityContext::AUTHENTICATION_ERROR
        );
    } else {
        $error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
        $session->remove(SecurityContext::AUTHENTICATION_ERROR);
    }
    $form = $this->createForm(new AccountType(), null, array(
    ));

    return array(
        'login_form' => $form->createView(),
        'page_title' => 'Login',
        // last username entered by the user
        'last_username' => $session->get(SecurityContext::LAST_USERNAME),
        'error'         => $error,
    );
}

日志

[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ProfilerListener::onKernelRequest". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Bundle'FrameworkBundle'EventListener'SessionListener::onKernelRequest". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'FragmentListener::onKernelRequest". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'RouterListener::onKernelRequest". [] []
[2013-11-08 23:30:53] request.INFO: Matched route "check_login" (parameters: "_controller": "Website'StaticBundle'Controller'AuthController::doLoginAction", "_route": "check_login") [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'LocaleListener::onKernelRequest". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'Security'Http'Firewall::onKernelRequest". [] []
[2013-11-08 23:30:53] doctrine.DEBUG: SELECT a0_.account_id AS account_id0, a0_.username AS username1, a0_.password AS password2, a0_.salt AS salt3, a0_.date_created AS date_created4, a0_.date_modified AS date_modified5, a0_.status_id AS status_id6 FROM account a0_ WHERE a0_.username = ? ["alex"] []
[2013-11-08 23:30:53] security.INFO: Authentication request failed: Bad credentials [] []
[2013-11-08 23:30:53] security.DEBUG: Redirecting to login [] []
[2013-11-08 23:30:53] event.DEBUG: Listener "Symfony'Component'Security'Http'Firewall::onKernelRequest" stopped propagation of the event "kernel.request". [] []
[2013-11-08 23:30:53] event.DEBUG: Listener "Symfony'Bundle'AsseticBundle'EventListener'RequestListener::onKernelRequest" was not called for event "kernel.request". [] []
[2013-11-08 23:30:53] event.DEBUG: Listener "Symfony'Component'HttpKernel'EventListener'ErrorsLoggerListener::injectLogger" was not called for event "kernel.request". [] []
[2013-11-08 23:30:53] event.DEBUG: Listener "Symfony'Component'HttpKernel'EventListener'ErrorsLoggerListener::injectLogger" was not called for event "kernel.request". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'Security'Http'Firewall'ContextListener::onKernelResponse". [] []
[2013-11-08 23:30:53] security.DEBUG: Write SecurityContext in the session [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bridge'Monolog'Handler'FirePHPHandler::onKernelResponse". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bridge'Monolog'Handler'ChromePhpHandler::onKernelResponse". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'ResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'Security'Http'RememberMe'ResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'CacheListener::onKernelResponse". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'ProfilerListener::onKernelResponse". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bundle'WebProfilerBundle'EventListener'WebDebugToolbarListener::onKernelResponse". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'StreamedResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:53] event.DEBUG: Notified event "kernel.terminate" to listener "Symfony'Bundle'SwiftmailerBundle'EventListener'EmailSenderListener::onKernelTerminate". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ProfilerListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Bundle'FrameworkBundle'EventListener'SessionListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'FragmentListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'RouterListener::onKernelRequest". [] []
[2013-11-08 23:30:54] request.INFO: Matched route "login" (parameters: "_controller": "Website'StaticBundle'Controller'AuthController::loginAction", "_route": "login") [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'LocaleListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'Security'Http'Firewall::onKernelRequest". [] []
[2013-11-08 23:30:54] security.INFO: Populated SecurityContext with an anonymous Token [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Bundle'AsseticBundle'EventListener'RequestListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ErrorsLoggerListener::injectLogger". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ErrorsLoggerListener::injectLogger". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Symfony'Bundle'FrameworkBundle'DataCollector'RouterDataCollector::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Acme'DemoBundle'EventListener'ControllerListener::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Symfony'Component'HttpKernel'DataCollector'RequestDataCollector::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'ControllerListener::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'ParamConverterListener::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'TemplateListener::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.view" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'TemplateListener::onKernelView". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ProfilerListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Bundle'FrameworkBundle'EventListener'SessionListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'FragmentListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'RouterListener::onKernelRequest". [] []
[2013-11-08 23:30:54] request.INFO: Matched route "navigation" (parameters: "_controller": "Website'StaticBundle'Controller'AuthController::navigationAction", "_route": "navigation") [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'LocaleListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'Security'Http'Firewall::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Bundle'AsseticBundle'EventListener'RequestListener::onKernelRequest". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ErrorsLoggerListener::injectLogger". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ErrorsLoggerListener::injectLogger". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Symfony'Bundle'FrameworkBundle'DataCollector'RouterDataCollector::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Acme'DemoBundle'EventListener'ControllerListener::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Symfony'Component'HttpKernel'DataCollector'RequestDataCollector::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'ControllerListener::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'ParamConverterListener::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'TemplateListener::onKernelController". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.view" to listener "closure". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.view" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'TemplateListener::onKernelView". [] []
[2013-11-08 23:30:54] event.DEBUG: Listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'TemplateListener::onKernelView" stopped propagation of the event "kernel.view". [] []
[2013-11-08 23:30:54] event.DEBUG: Listener "closure" stopped propagation of the event "kernel.view". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'Security'Http'Firewall'ContextListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bridge'Monolog'Handler'FirePHPHandler::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bridge'Monolog'Handler'ChromePhpHandler::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'ResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'Security'Http'RememberMe'ResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'CacheListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'ProfilerListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bundle'WebProfilerBundle'EventListener'WebDebugToolbarListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'StreamedResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'TemplateListener::onKernelView" stopped propagation of the event "kernel.view". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'Security'Http'Firewall'ContextListener::onKernelResponse". [] []
[2013-11-08 23:30:54] security.DEBUG: Write SecurityContext in the session [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bridge'Monolog'Handler'FirePHPHandler::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bridge'Monolog'Handler'ChromePhpHandler::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'ResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'Security'Http'RememberMe'ResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'CacheListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'ProfilerListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bundle'WebProfilerBundle'EventListener'WebDebugToolbarListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'StreamedResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:54] event.DEBUG: Notified event "kernel.terminate" to listener "Symfony'Bundle'SwiftmailerBundle'EventListener'EmailSenderListener::onKernelTerminate". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ProfilerListener::onKernelRequest". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Bundle'FrameworkBundle'EventListener'SessionListener::onKernelRequest". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'FragmentListener::onKernelRequest". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'RouterListener::onKernelRequest". [] []
[2013-11-08 23:30:56] request.INFO: Matched route "_wdt" (parameters: "_controller": "web_profiler.controller.profiler:toolbarAction", "token": "e51eae", "_route": "_wdt") [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'LocaleListener::onKernelRequest". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'Security'Http'Firewall::onKernelRequest". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Bundle'AsseticBundle'EventListener'RequestListener::onKernelRequest". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ErrorsLoggerListener::injectLogger". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.request" to listener "Symfony'Component'HttpKernel'EventListener'ErrorsLoggerListener::injectLogger". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.controller" to listener "Symfony'Bundle'FrameworkBundle'DataCollector'RouterDataCollector::onKernelController". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.controller" to listener "Acme'DemoBundle'EventListener'ControllerListener::onKernelController". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.controller" to listener "Symfony'Component'HttpKernel'DataCollector'RequestDataCollector::onKernelController". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'ControllerListener::onKernelController". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'ParamConverterListener::onKernelController". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.controller" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'TemplateListener::onKernelController". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bridge'Monolog'Handler'FirePHPHandler::onKernelResponse". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bridge'Monolog'Handler'ChromePhpHandler::onKernelResponse". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'ResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'Security'Http'RememberMe'ResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.response" to listener "Sensio'Bundle'FrameworkExtraBundle'EventListener'CacheListener::onKernelResponse". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'ProfilerListener::onKernelResponse". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Bundle'WebProfilerBundle'EventListener'WebDebugToolbarListener::onKernelResponse". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.response" to listener "Symfony'Component'HttpKernel'EventListener'StreamedResponseListener::onKernelResponse". [] []
[2013-11-08 23:30:56] event.DEBUG: Notified event "kernel.terminate" to listener "Symfony'Bundle'SwiftmailerBundle'EventListener'EmailSenderListener::onKernelTerminate". [] []

处理注册的操作:

...
if ($form->isValid()) {
    $data = $form->getData();
    /**
     * Account
     */
    $account->setUsername($data->getAccount()->getUsername());
    // Password
    $factory = $this->get('security.encoder_factory');
    $encoder = $factory->getEncoder($account);
    $password = $encoder->encodePassword($data->getAccount()->getPassword(), $account->getSalt());
    $account->setPassword($password);
    $account->setSalt($data->getAccount()->getSalt());
    $now = new 'DateTime('now');
    $account->setDateCreated($now);
    $account->setDateModified($now);
    /**
     * Consumer account
     */
    $consumerAccount->setAccount($account);
    $consumerAccount->setFirstName($data->getFirstName());
    $consumerAccount->setLastName($data->getLastName());
    $consumerAccount->setGender($data->getGender());
    $em = $this->getDoctrine()->getManager();
    $em->persist($account);
    $em->persist($consumerAccount);
    $em->flush();
    $this->get('session')->getFlashBag()->add(
        'notice',
        'Successfully registered!'
    );
    return $this->redirect($this->generateUrl('login'));
}

查询很好,用户按预期提取,所以我认为问题不在于实际的帐户实体,而很可能出在配置中。

任何帮助将不胜感激。谢谢。

[2013-11-08 23:30:53] doctrine.DEBUG: SELECT a0_.account_id AS account_id0, a0_.username AS username1, a0_.password AS password2, a0_.salt AS salt3, a0_.date_created AS date_created4, a0_.date_modified AS date_modified5, a0_.status_id AS status_id6 FROM account a0_ WHERE a0_.username = ? ["alex"] []
[2013-11-08 23:30:53] security.INFO: Authentication request failed: Bad credentials [] []

应检查此查询是否返回结果(使用探查器)。如果是这样,则Bad credentials意味着输入的密码不正确,或者更有可能的是,存储在数据库中的加密版本不是您认为的那样。

请确保使用配置的编码器对用户密码进行编码:

$factory = $this->get('security.encoder_factory');
$user = new Acme'UserBundle'Entity'User();
$encoder = $factory->getEncoder($user);
$password = $encoder->encodePassword('ryanpass', $user->getSalt());
$user->setPassword($password);

解决此问题后,您仍然可能无法登录到"安全区域"。这是因为您的登录表单/页面和"安全区域"使用不同的防火墙。您已登录到一个防火墙,但未登录到另一个防火墙。

尝试删除防火墙login,并将其添加到access_control

- { path: ^/demo/secured/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }

更新

您可以在配置中将hide_user_not_found设置为security下的false,以使提供程序引发有意义的异常。您将更好地了解出了什么问题。

如果问题确实出在密码上,你应该从这里开始调试 DaoAuthenticationProvider。转储它正在比较的密码,看看到底发生了什么。