3

首先,对不起我的英语:我是法国人,我的英语说得不太好。

我尝试在 LDAP 目录上的 Intranet 网站上登录我的用户。所以我决定在 SF 2.0.X 上使用 FR3D Ldap Bundle 和 FOS User Bundle。

我已经安装了 FOSUB,它在 Mysql DB 上运行良好。之后,我安装了 FR3D Ldap Bundle => OK。

现在我的配置有问题。当我尝试使用 FOSUB 登录表单中的用户登录时,我收到一条错误消息:"The presented password is invalid."

这是我的安全配置:

 main:
        pattern: ^/                      # ^/ = tout ce qui commence par / = tout notre site
        #fr3d_ldap:  ~
        form_login: # On définit notre méthode d'authentification
            always_use_default_target_path: false
            default_target_path: /annu
            provider:    chain_provider  # On lit l'authentification au provider définit plus haut
            remember_me: true            # On active la possibilité du "Se souvenir de moi" (désactivé par défaut)
        remember_me:
            lifetime: 604800                # in seconds
            key:         %secret%        # On définit la clé pour le remember_me (%secret% est un parametre de parameters.ini)
        anonymous:       true            # On autorise les utilisateurs anonymes (non identifiés)
        logout:   
            path:   /logout
            target: /annu 




providers:
        chain_provider:
            providers: [fos_userbundle, fr3d_ldapbundle]
        in_memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
        fos_userbundle:
            id: fos_user.user_manager
        fr3d_ldapbundle:
            id: fr3d_ldap.security.user.provider

我不明白为什么我无法登录我的用户,因为我在 Wireshark 上看到了 LDAP 请求。

4

1 回答 1

1

您已评论 LDAP Authenticator "#fr3d_ldap: ~"

您必须取消注释它才能进行身份验证。您在 Wireshark 上看到的 LDAP 请求是为用户提供的查询。

Symfony 需要两个步骤来验证用户:

1)从存储库中检索用户(查询到 LDAP 目录)这一步是通过添加fr3d_ldap.security.user.providerproviders:部分来完成的

2) 使用他的凭据进行身份验证(绑定到 LDAP 目录)这一步是通过添加fr3d_ldap: ~到该<firewall name:>部分来完成的。

删除#开头的字符fr3d_ldap: ~应该可以解决您的问题。

于 2012-09-06T18:33:31.460 回答