我正在尝试按照本指南将BorisMorel LdapBundle与FOSUser集成:Using a custom user manager with LDAP authentication
我的目标是使用LDAP进行身份验证,然后将LDAP数据存储在我的fosuser表中。
我已经到了从LDAP正确检索数据并存储在fosuser表中的地步。我不希望它将密码存储在数据库中,因为它没有用处,因为我更喜欢在每次登录时使用LDAP验证密码。
问题是当我到达这一点时: C:\ XAMPP \ htdocs中\ Symfony2的\厂商\ symfony的\ symfony的\ SRC \的Symfony \元器件\安全\核心\认证\提供商\ UserAuthenticationProvider.php
功能: 公共功能验证(TokenInterface $ token)
它调用函数: $ this-> checkAuthentication($ user,$ token);
哪个解决了这个功能: checkAuthentication(UserInterface $ user,UsernamePasswordToken $ token)
此文件中包含以下内容: C:\ XAMPP \ htdocs中\ Symfony2的\厂商\ symfony的\ symfony的\ SRC \的Symfony \元器件\安全\核心\认证\提供商\ DaoAuthenticationProvider.php
因为它使用以下方法检查密码: encoderFactory-> getEncoder($ user) - > isPasswordValid($ user-> getPassword(),$ presentPassword,$ user-> getSalt())){ 抛出新的BadCredentialsException('提供的密码是 }
由于fosuser表上的密码为空,因此即使已经通过LdapBundle测试,身份验证也会失败。
我缺少什么?我猜测正在使用错误的验证器,但是在BorisMorel资源中没有描述它。
请帮忙!