Symfony已记录但未经过身份验证

时间:2015-02-18 20:17:41

标签: php security symfony authentication

您好我通过日志记录表单遇到symfony 2.6身份验证问题。我已按照Symfony文档执行此操作。

我的问题是,当我尝试登录我的应用程序时,但我没有根据分析器进行身份验证。

在我的日志中我发现了这个:

  

[2015-02-18 20:44:33] security.INFO:用户" zouhair@speeddev.com"具有   已成功验证[] [] ... 2015-02-18 20:57:28]   request.INFO:匹配路由" speed_dev_myprojects_homepage"   (参数:" _controller":   " SpeedDev \ MyprojectsBundle \控制器\ DefaultController ::的indexAction&#34 ;,   " _route":" speed_dev_myprojects_homepage")[] [] [2015-02-18 20:57:28]   security.DEBUG:从session [] []中读取SecurityContext   [2015-02-18 20:57:28] security.DEBUG:检查安全上下文令牌:   UsernamePasswordToken(user ="",authenticated = true,roles =" ROLE_MOE")   [] []

我不知道为什么

没有_username值

这是我的loginAction:

    namespace SpeedDev\MyprojectsBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use SpeedDev\MyprojectsBundle\Entity\Employee;

class SecurityController extends Controller {

    public function loginAction() {

        $this->get('security.token_storage')->setToken($token);

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

        return $this->render('SpeedDevMyprojectsBundle:Security:login.html.twig', array(
                    'last_username' => $helper->getLastUsername(),
                    'error' => $helper->getLastAuthenticationError(),
        ));
    }

}

这是我的security.yml文件:

firewalls:
        dev:
            pattern: ^/(_(profiler|wdt|error)|css|images|js)/
            security: false

        main_login:
            pattern:   ^/login$
            anonymous: true

        secured_area:
            pattern: ^/
            remote_user:
                provider: chain_provider
            wsse:      true
            anonymous: false
            form_login:
                login_path: login
                check_path: login_check

                # par défaut, le formulaire de login *doit* être un POST,
                # et pas un GET
                post_only:                      true
                remember_me:                    true

                # options de redirection lorsque le login a réussi (vous
                # pouvez en lire plus ci-dessous)
                always_use_default_target_path: false
                default_target_path:            speed_dev_myprojects_homepage
                target_path_parameter:          _target_path
                use_referer:                    false

                # options de redirection lorsque le login échoue (vous
                # pouvez en lire plus ci-dessous)
               # failure_path:                   login_failure
               # failure_forward:                false

                # noms des champs pour le nom d'utilisateur et le mot
                # de passe
                username_parameter:             _username
                password_parameter:             _password

                # options du token csrf
                csrf_parameter:                 _csrf_token
                intention:                      authenticate

                require_previous_session: true

            remember_me:                    
                    key:      "%secret%"
                    lifetime: 31536000 # 365 jours en secondes
                    path:     /
                    domain:   ~ # Prend la valeur par défaut du domaine courant depuis $_SERVER
            logout:
                    path:   logout
                    target: speed_dev_myprojects_homepage


    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY}
        - { path: ^/, roles: ROLE_MOE }

0 个答案:

没有答案