错误角色重定向到 403 而不是失败



我使用Symfony2系统进行用户身份验证,当具有其他角色的用户ROLE_ADMIN尝试登录时,他可以,但他在403页面上被阻止。这是我的安全配置:

security:
encoders:
    MeUserBundleEntityUser:
        algorithm: sha512
        encode-as-base64: true
        iterations: 10
providers:
    main:
        entity:
            class: MeUserBundleEntityUser
            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 错误。我该怎么办?谢谢

您不能仅通过配置获得此行为。由于抛出访问拒绝异常是正常行为(用户经过身份验证,因此需要将她/他重定向到身份验证),因此必须处理访问拒绝。

请参阅此答案,其中解释了如何创建和使用访问拒绝处理程序

相关内容

最新更新