认证系统

时间:2013-01-09 21:53:25

标签: symfony

我确实有以下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 // green background
  • 在每个页面foo都经过身份验证

...作为db用户:

  • 仅在我在access_control中声明的页面上,db_user已登录并经过身份验证//绿色背景
  • 在用户登录的其他页面上//黄色背景,但未经过身份验证

为什么会有不同?

评论:我是否必须从db为用户提供角色?我可以为db用户设置默认角色吗?

1 个答案:

答案 0 :(得分:1)

你使用防火墙吗?

我前段时间偶然发现了这个问题并最终到了这里:

app.user is not accessible from unsecured area