gpt4 book ai didi

security - Symfony 2 Security.yml 重定向循环和 LogicException 问题

转载 作者:行者123 更新时间:2023-12-04 08:48:03 25 4
gpt4 key购买 nike

好吧,我想我需要牵手..

这个问题是上一个问题的后续: Symfony2 img/LdapBundle Bad credentials error

我将其拆分为一个不同的问题。我遇到了两个与 security.yml 文件相关的不同问题,如下所述。

我有我的 security.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:没有为防火墙“restricted_area”注册的身份验证监听器。

所以我尝试了以下方法:

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: /

但这会导致重定向循环。

谁能告诉我如何让它工作?我正在尝试使用 https://github.com/BorisMorel/LdapBundle用于验证用户身份的 ldap bundle ..

最佳答案

根据文档https://github.com/BorisMorel/LdapBundle#configure-securityyml你应该有一个带有 pattern: ^/ 登录名的防火墙。

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 }

您不需要身份验证的站点必须包含在 acces_control 下,具有 IS_AUTHENTICATED_ANONYMOUSLY 角色。这也适用于开发环境中的分析器和工具栏(实际上是针对 FOSUserBundle,但我认为这对 LdapBundle 也很重要)。是的,我知道 symfony 文档说要专门为 ^/login$ 创建一个匿名防火墙,但是如果 bundle 支持匿名角色,那么使用 acces_control 将其排除就足够了。

    - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY }

编辑:并且不要忘记从包中导入路由定义而不是自己定义它们。见https://github.com/BorisMorel/LdapBundle#import-routing

关于security - Symfony 2 Security.yml 重定向循环和 LogicException 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16188444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com