2

我正在使用FOSUserBundle。我创建了另一个防火墙(请参阅下面的 security.yml),但是当我登录并尝试访问页面 localhost/BEL/app_dev.php/back_office 时,我被重定向到我登录的 localhost/BEL/app_dev.php/login。我未登录时的行为完全相同。

我试图在我的防火墙模式和我的 access_control 路径的末尾放一个 $ ,当我登录和未登录时我可以访问该页面(所以这不是我所期望的) .

只有在连接时(我的用户只有 ROLE_USER 角色),我才能访问此页面?

# app/config/security.yml
security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager

    encoders:
        'FOS\UserBundle\Model\UserInterface': sha512

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main_bo:
            pattern: ^/back_office/
            form_login:
                provider: fos_userbundle
            logout:       true
            anonymous:    false
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
            logout:       true
            anonymous:    true

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }
        - { path: ^/back_office/, role: ROLE_USER }
        - { path: ^/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN
4

1 回答 1

1

您始终可以实现身份验证成功处理程序,您可以使用该处理程序拦截登录重定向并在特殊情况下进行自定义重定向(例如后端用户登录)

这里的教程

于 2012-06-25T22:31:11.167 回答