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