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