我已将symfony 2.0项目更新为2.5,现在我遇到了一些身份验证问题:
提交用户名和密码后,我通过了身份验证。如果我按照安全区域中的链接或如果我刷新当前页面,我会收到此错误:
There is no user provider for user "XXX\AccountBundle\Entity\Worker".
再次刷新后,我通过了身份验证。 下次刷新后我不是。 再次刷新后,我通过了身份验证。 等等...
这是我的security.yml:
security:
encoders:
XXX\AccountBundle\Entity\Worker:
algorithm: sha1
iterations: 1
encode_as_base64: false
role_hierarchy:
ROLE_ACCOUNT_OWNER: [ROLE_USER]
providers:
users:
entity: { class: XXXAccountBundle:Worker, property: email }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
application:
pattern: ^/
anonymous: ~
form_login:
login_path: /login
check_path: /login_check
default_target_path: /dashboard
use_referer: true
remember_me:
key: "%secret%"
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~ # Defaults to the current domain from $_SERVER
logout:
path: /logout
target: /
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER }
如果我删除了“记住我”部分,我会在第一次请求后退出。
答案 0 :(得分:0)
因为每次调用都出现了身份验证问题,所以我有充分的理由检查用户对象的可序列化内容。那里的一切都很好,但我不得不重新实现用户加载的UserRepository类中的一些自定义函数。
由于错误消息,我在错误的地方搜索了几个小时。我的security.yml设置很好。
现在验证过程再次起作用:)