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 )。

次に、 bind 関数を次のように変更します。

/**
 * {@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 に答える