我确实有以下security.yml:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
Frontend\AccountBundle\Entity\User:
id: sha256salted_encoder
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
chain_provider:
chain:
providers: [in_memory, user_db]
in_memory:
memory:
users:
foo: { password: test, roles: ROLE_USER }
user_db:
entity: { class: Frontend\AccountBundle\Entity\User, property: email }
access_control:
- { path: ^/secarea/, roles: ROLE_USER }
如果我要以用户身份登录....
...富:
- 在每一页 foo 登录为: foo // 绿色背景
- 在每一页 foo 都经过身份验证
...作为数据库用户:
- 仅在我在 access_control 中声明的页面上,db_user 才登录并经过身份验证 // 绿色背景
- 在其他页面上,用户已登录 //黄色背景,但未通过身份验证
为什么有不同?
评论:我必须给来自 db 的用户一个角色吗?我可以为 db 用户设置默认角色吗?