0

ユーザー認証に Symfony2 システムを使用しています。ROLE_ADMIN 以外のロールを持つユーザーがログインしようとすると、ログインできますが、403 ページでブロックされます。これは私のセキュリティ設定です:

security:
encoders:
    Me\UserBundle\Entity\User:
        algorithm: sha512
        encode-as-base64: true
        iterations: 10
providers:
    main:
        entity:
            class: Me\UserBundle\Entity\User
            property: username
firewalls:
    secured_area:
        pattern: ^/
        anonymous: ~
        form_login:
            login_path: /login
            check_path: /login_check
            default_target_path: /admin/user/
        logout:
            path: /logout
            target: /login
access_control:
    - { path: ^/admin/, roles: [ROLE_ADMIN] }
    - { path: ^/account, roles: [IS_AUTHENTICATED_FULLY] }

ユーザーが ROLE_ADMIN 以外のロールでログインしようとすると、認証エラーでログイン フォームに戻り、どこに行っても 403 エラーでログに記録されないことを望みます。そのために私は何をすべきですか?ありがとうございました

4

1 に答える 1

1

この動作は、構成だけでは実現できません。AccessDeniedException のスローは通常の動作であるため (ユーザーは認証されているため、ユーザーを認証にリダイレクトする必要があります)、AccessDeniedを処理する必要があります。

AccessDeniedHandlerを作成して使用する方法を説明するこの回答を参照してください。

于 2012-09-19T22:42:45.640 に答える