在Symfony2安全性中重定向死循环

Acy*_*yra 7 php symfony

我有一个登录管理区域,我们强制要求https://.如果用户没有登录,点击路由/管理员应该重定向到登录页面,但我得到一个无限的重定向循环.不知道出了什么问题,这是security.yml:

firewalls: 
        admin_login:
            pattern:  ^/admin/secured/login$
            security: false

        admin_secured_area:
            pattern: ^/admin
            provider: entity_admin
            form_login:
                check_path: /admin/secured/login_check
                login_path: /admin/secured/login
                default_target_path: /admin
            logout:
                path:   /admin/secured/logout
                target: /

    access_control:
        - { path: ^/admin/secured/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
        - { path: ^/admin, roles: ROLE_ADMIN, requires_channel: https }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Alt*_*PHP 7

防火墙中不需要"admin_login"部分.但看起来你忘记了匿名参数..

firewalls:     
        admin_secured_area:
            anonymous: ~
            pattern: ^/admin
            provider: entity_admin
            form_login:
                check_path: /admin/secured/login_check
                login_path: /admin/secured/login
                default_target_path: /admin
            logout:
                path:   /admin/secured/logout
                target: /

    access_control:
        - { path: ^/admin/secured/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
        - { path: ^/admin, roles: ROLE_ADMIN, requires_channel: https }
Run Code Online (Sandbox Code Playgroud)

正如我在评论中所说,您是否为已登录用户设置了ROLE_ADMIN角色?

编辑:您的路由是否也为管理部分说明了HTTPS频道?

  • 我有一个类似的问题,对我来说,工作时将`anonymous:~`添加到`admin_secured_area`. (2认同)

Acy*_*yra 3

您好,这与 Symfony2 在站点处于负载均衡器下时检查 SSL 的方式有关$request->isSecure(),PHP 中存在一些不一致的标头名称。配置文件需要以下内容:

trusted_proxies: [10.0.0.0/8]
Run Code Online (Sandbox Code Playgroud)

它现在可以工作,但我不知道此设置是否存在安全问题。