システムでカスタム ユーザー プロバイダーを使用して Symfony Security を使用しています。Web サービスを介してユーザーに提供します。このチュートリアル ( http://symfony.com/doc/current/cookbook/security/custom_provider.html
)
に従ってプロバイダーを構成します。
ユーザーをチェックする関数は次のとおりです。
public function loadUserByUsername($username)
{
$userData = webServiceCheckUser($username);
// return an array whit user credentials
if ($userData) {
$password = $userData['password'];
$salt = $userData['salt'];
$roles = $userData['roles'];
$user = new WebserviceUser($username, $password, $salt, $roles);
return $user;
}
throw new UsernameNotFoundException(sprintf('Username "%s" does not exist.', $username));
}
これは正常に機能し、関数webServiceCheckUser()
はユーザー名を使用して Web サービスを呼び出し、ユーザー データを含む配列を返します。しかし今、ユーザーを認証するためにユーザーのユーザー名と暗号化されたパスワードを必要とする別の Web サービスを介してユーザーをチェックする必要があります。Web サービスが待機しているように平文のパスワードを暗号化する機能を持っていますが、カスタム ユーザー プロバイダー クラス内のフォーム ログインでユーザーが入力したパスワードを取得できません。パスワードがすでに暗号化されていれば問題ありません。どちらかが問題を解決します。
とにかくこれを行うことはありますか?