Security Symfony 2登录重定向回登录页面

Security Symfony 2登录重定向回登录页面,security,symfony,login,login-control,Security,Symfony,Login,Login Control,我安装了一个symfony2应用程序,我正在尝试使用安全包和用户实体来处理登录。当我尝试查看/about页面时,我会被重定向到登录页面,然后在使用正确的信息登录后,我会被重定向回登录页面。我知道我输入了存储在数据库中的正确信息,因为如果我输入了错误的内容,我会在登录页面上得到一个无效的密码错误。另外,当我查看日志时,查找用户名的查询没有传递任何参数。有什么想法吗 security.yml security: encoders: Company\Project\Entity

我安装了一个symfony2应用程序,我正在尝试使用安全包和用户实体来处理登录。当我尝试查看/about页面时,我会被重定向到登录页面,然后在使用正确的信息登录后,我会被重定向回登录页面。我知道我输入了存储在数据库中的正确信息,因为如果我输入了错误的内容,我会在登录页面上得到一个无效的密码错误。另外,当我查看日志时,查找用户名的查询没有传递任何参数。有什么想法吗

security.yml

security:
    encoders:
        Company\Project\Entity\User: 
            algorithm: sha512
            encode-as-base64: true

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        main:
            entity: { class: Company\Project\Entity\User}

    firewalls:
        main:
            pattern:    ^/
            form_login:
                check_path: /login_check
                login_path: /login

            logout:
                path:   /logout
                target: /
            anonymous: ~

    access_control:
        - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https}
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
        - { path: ^/about, roles: ROLE_ADMIN, requires_channel: https }

我知道了。我必须在我的用户实体上实现Serializable

public function serialize()  
{  
    return serialize(array(  
        'username'        => $this->getUsername(),  
        'password'       => $this->getPassword(),  
        'salt'       => $this->getSalt(),  
        'roles'  => $this->getRoles()  
    ));  
} 

public function unserialize($serializedData)  
{  
    $unserializedData     = unserialize($serializedData);  

    $this->setUsername(isset($unserializedData['username']) ? $unserializedData['username'] : null);  
    $this->setPassword(isset($unserializedData['password']) ? $unserializedData['password'] : null);  
    $this->setSalt(isset($unserializedData['salt']) ? $unserializedData['salt'] : null);  
}