1

私はこの security.yml ファイルを持っています:

...
security:
    encoders:
        Trainme\RestBundle\Document\User:
          id: security.encoder.blowfish

    role_hierarchy:
        ROLE_TRAINER:     ROLE_USER
        ROLE_ADMIN:       ROLE_TRAINER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        trainme_admin_provider:
            id: trainme_admin.user_provider

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        secured_admin:
            pattern:    ^/admin
            form_login:
                check_path: trainme_security_check
                login_path: trainme_login
                default_target_path: trainme_dashboard
            logout:
                path:   trainme_logout
                target: trainme_redirect_route

    access_control:
      - { path: ^/admin, roles: ROLE_ADMIN }
      - { path: ^/profile, roles: ROLE_TRAINER }

ユーザーの役割が ROLE_TRAINER の場合は /profile にリダイレクトされ、ROLE_ADMIN の場合は /admin にリダイレクトされます。これは、次のソリューションHow to redirect to different url based on roles in symfony 2 を使用して行います。

問題は次のとおりです: /profile のデバッグ ツールバーを見ると、認証されていないと表示されます。認証されないのはなぜですか? すでにログインフォームを使用してログインしています。しかし、ROLE_ADMIN としてログインし、/admin にいると、認証されていると表示されます。

4

1 に答える 1