Symfony 2 Security.yml重定向循环和逻辑异常问题

Symfony 2 Security.yml重定向循环和逻辑异常问题,security,symfony,Security,Symfony,好的,我想我需要一只手 此问题是上一个问题的后续问题: 我把这件事分开讨论,因为这是另一个问题。我得到了与security.yml文件相关的两个不同问题,如下所述 我有我的安全。yml: security: firewalls: login_firewall: pattern: ^/login$ anonymous: ~ imag_ldap: check_pa

好的,我想我需要一只手

此问题是上一个问题的后续问题:

我把这件事分开讨论,因为这是另一个问题。我得到了与security.yml文件相关的两个不同问题,如下所述

我有我的安全。yml:

security:
    firewalls:
        login_firewall:
            pattern:    ^/login$
            anonymous:  ~
            imag_ldap:
                check_path: login_check
                login_path: login
                csrf_provider: form.csrf_provider
                intention: authenticate
                provider: ldap
            logout:
                path:           /logout
                target:         /
        restricted_area:
            pattern:          ^/
            #anonymous:        ~ 
    providers:
        ldap:
           id: imag_ldap.security.user.provider

    encoders:
        IMAG\LdapBundle\User\LdapUser: plaintext

    access_control:
        - { path: ^/login,          roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/,               roles: IS_AUTHENTICATED_FULLY }
但是我得到了以下错误:
LogicException:没有为防火墙“受限区域”注册身份验证侦听器。

因此,我尝试了以下方法:

security:
    firewalls:
        login_firewall:
            pattern:    ^/login$
            anonymous:  ~
            imag_ldap:
                check_path: login_check
                login_path: login
                csrf_provider: form.csrf_provider
                intention: authenticate
                provider: ldap
            logout:
                path:           /logout
                target:         /
        restricted_area:
            pattern:          ^/
            #anonymous:        ~ 
            imag_ldap:
                check_path: login_check
                login_path: login
                csrf_provider: form.csrf_provider
                intention: authenticate
                provider: ldap
            logout:
                path:           /logout
                target:         /
但这会导致重定向循环


有人能告诉我如何让它工作吗?我正在尝试使用ldap捆绑包对用户进行身份验证。

根据文档,您应该有一个带有
模式的防火墙:^/
,其中也有登录名

security:
    firewalls:
        restricted_area:
            pattern:    ^/
            anonymous:  ~
            imag_ldap:
                check_path: login_check
                login_path: login
                csrf_provider: form.csrf_provider
                intention: authenticate
                provider: ldap
            logout:
                path:           /logout
                target:         /
    providers:
        ldap:
           id: imag_ldap.security.user.provider

    encoders:
        IMAG\LdapBundle\User\LdapUser: plaintext

    access_control:
        - { path: ^/login$,         roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/,               roles: IS_AUTHENTICATED_FULLY }
不需要身份验证的站点必须包含在
access\u control
下,且
具有匿名身份验证的角色。这也适用于dev environment中的探查器和工具栏(实际上适用于FOSUserBundle,但我认为这对LdapBundle也很重要)。是的,我知道symfony文档说专门为
^/login$
创建一个匿名防火墙,但是如果捆绑包支持匿名角色,就可以使用上面的acces\u控件将其排除

    - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY }
编辑
别忘了从bundle中导入路由定义,而不是自己定义它们。请参见

多谢多调试一点,我应该把它修好。Quic Q尽管如此-这个捆绑包是int eh供应商目录,不在源代码下,我不认为路由是因为它而导入的..是的,不知道为什么,但它没有找到
的路由,没有找到“GET/app\u dev/login”的路由。
我已经用新的symfony 2.2.1安装进行了测试,并添加了
“imag/ldap捆绑包”:“2.1.*”
,作为依赖项。捆绑包位于
vendor/imag/ldap bundle/imag/LdapBundle/
下,配置捆绑包并导入路由后,
php应用程序/控制台路由器:debug
向我显示登录、登录检查和注销的路由。哦,如果您出错,请您忘记app\u dev之后的.php?=>app_dev.php/。。。。