2016-02-25 2 views
0

Я пытаюсь сравнить имя пользователя и пароль от пользователя с тем, что находится в базе данных. Я могу успешно проверить имя пользователя, но я не уверен, как одновременно сравнивать имя пользователя и пароль:/надеюсь, кто-то может мне помочь на этомПроверьте имя пользователя и пароль Hibernate в Java

Вот метод входа.

@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); 
} 

ответ

0

Последний раз я проверил, в Java можно сравнивать строки, как этот

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

, но в коде я вижу, у вас есть data переменную, которая в начале фрагмента носит форму, и то ему присваивается значение записи базы данных! Нет нет. Вам нужны оба.

Кроме того, поскольку это общественный форум, и кто-то еще могут прийти сюда и посмотреть этот пост, рассмотрят обычные правила для проверки подлинности пароля:

  • нормализует имя пользователя перед поиском спички (по крайней мере, не чувствителен к регистру)
  • не хранить пароль в открытом виде в базе данных (используйте Bcrypt, например)
  • использовать алгоритм постоянная времени при сравнении секретов