MVC で JSP を使用してユーザー ログイン/サインアップを開発しようとしています。プログラムは、単純なログイン、作成、およびユーザーの更新を行います。モデル部分では、次の基準に基づいて 0、1、2、3 を返すことになっています。
0 ユーザーが正常に検証された場合 1 ユーザーが正常に検証されたが、弱いパスワードを持っている場合 2 ユーザーが正常に検証されたが、有効期限が切れたパスワード (1 年以上前) を持っている場合 3 ユーザーが検証されていない場合
これまでに行った検証メソッドのコードは次のとおりです。
public int Validate() {
try {
Class.forName(driverName).newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Connection connection = DriverManager.getConnection(dbURL,
username, password);
String verifyQuery = "SELECT COUNT(email), dateSet, strength FROM users WHERE email=? AND hashPassword=SHA2(CONCAT(?, salt), 256)";
PreparedStatement verify = connection.prepareStatement(verifyQuery);
verify.setString(1, email);
verify.setString(2, pass);
ResultSet verified = verify.executeQuery();
while (verified.next()) {
if (verified.getInt(1) == 1) {
email_db = verified.getString(2);
pass_db = verified.getString(3);
date = verified.getDate(5);
strength = verified.getString(6);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (email_db.equals(email) && pass_db.equals(pass)) {
status = 0;
}
if (email_db.equals(email) && pass_db.equals(pass)
&& strength.equals("weak")) {
status = 1;
}
if (email_db.equals(email) && pass_db.equals(pass) && date> ){
}
return status;
}
日付部分について混乱しています。何か提案はありますか? Date 部分の新しいメソッドを作成する必要がありますか?