バリデータを休止状態:検証2つのフィールドが一致
-
25-09-2019 - |
質問
私は思っていた、私が何かを見下ろす午前またはHibernateバリのオファーは何の注釈が2つのフィールドが(パスワードなど)が等しいことを確認しないことはありません。 私は私自身のバリデータを書くことができます知っているが、うまくこれは標準機能のように思える。
解決 3
だけは、カスタム検証ルートに行ってきました。ここでは他の2件の回答は本当に質問に関連していません。 グーグルのビットで、私はfieldmatch例を見つけます。
他のヒント
あなたはそのために春の式言語(SPEL)を使用することができます。私はしましたが非常に簡単にクロスフィールド検証を行いSPELに基づいてJSR-303バリデータを提供して小さなライブラリを書きました。 https://github.com/jirutka/validator-spring のを見てみましょう。
それらの少なくとも一方が空でない場合、これはパスワードフィールドの平等を検証します。
@SpELAssert(value = "password.equals(passwordVerify)",
applyIf = "password || passwordVerify",
message = "{validator.passwords_not_same}")
public class User {
private String password;
private String passwordVerify;
}
Aよくレイアウト例えばそのアドレス同様の問題、すなわち、クロスフィールド妥当性検証
Hibernateバリ(JSR 303) クロスフィールド検証>HibernateはORMマッパーです。
DBにデータを永続化し、再びそれを抽出するために使用されます。このように、同じ値を持つ2つのフィールドを有する(図の持続性の観点から)あまり意味があります。ザッツ何かがあなたのビジネスロジックに確認する必要があります。
そして、私はHasingとsaltと見上げて...いけない検索可能な形式でパスワードを持続... Juneshと思います - それとも、さらに別の愚かなパスワードを使用してクライアントを気にする必要はいけないので、より良い、OpenIDの考えを..ます。
私はあなたにも、データベースの確認パスワードを保存していない期待しています。あなたは、このためのボックスの検証のいずれかのうちを持っていないが、代わりにあなたにもかなり単純です使用カスタム注釈になります。