1

我正在使用 LDAP 对我的用户进行身份验证(回退到 FOS 用户捆绑包)。一切正常,我可以登录。

然而,这产生了一个“新”问题。我希望控制谁可以使用 FOS 登录应用程序,但使用 LDAP 控制他们的密码。

我使用 ROLES 进行了尝试:

- { path: ^/, role: ROLE_PGM_USER }

但这不是正确的地方,因为此时用户已经登录。

有没有办法将 fr3d 配置为也检查 fos “启用”字段,然后在不允许他们登录时显示自定义消息?

4

1 回答 1

1

找到了。

使用此处的说明覆盖 LdapManager ( https://github.com/Maks3w/FR3DLdapBundle/blob/master/Resources/doc/cookbook/override_ldap-manager.md )。

然后像这样更改绑定函数:

/**
 * {@inheritDoc}
 */
public function bind(LdapUserInterface $user, $password)
{
    if (!$user->hasRole('ROLE_PGM_USER')) {
        return false;
    }
    return $this->connection->bind($user->getDn(), $password);
}

这样可以防止没有“ROLE_PGM_USER”的用户登录。

于 2013-03-11T11:39:32.897 回答