在Java中检查用户名和密码Hibernate

时间:2016-02-25 05:52:21

标签: java hibernate netbeans

我正在尝试将用户的用户名和密码与数据库中的用户名和密码进行比较。我可以成功检查用户名,但我不确定如何同时比较用户名和密码:/希望有人可以帮我这个

这是登录方法。

@ButtonMethod(buttonName="loginButton")
public String loginMethod() {
String address = "login.jsp";
fillBeanFromRequest(data);
setErrors(data);
if (isValidProperty("username") && isValidProperty("password")) {
  Object dataPersistent = 
    HibernateHelper.getFirstMatch(data, 
      "username", data.getUsername());
  if (dataPersistent != null) {
    data = (RequestDataAccount)dataPersistent;
    response.addCookie(new Cookie("username", data.getUsername()));
    clearErrors();
    address = "ShowCookies.jsp";

  }
} else {
  address = "login.jsp";
}
return jspLocation(address);
}

1 个答案:

答案 0 :(得分:0)

我上次检查时,你可以用Java比较字符串

form.getPassword().equals(account.getPassword())

但是在你的代码中我看到你有一个data变量,它在代码片段的开头带有表单,然后分配了数据库记录的值!不,不。你需要两者。

此外,由于这是一个公共论坛,而其他人可能会来这里查看此帖子,请考虑密码认证的通常规则:

  • 在搜索匹配项之前规范化用户名(至少不区分大小写)
  • 不要将密码以明文形式存储在数据库中(例如使用bcrypt)
  • 在比较秘密时使用恒定时间算法