我正在使用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