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