public User authenticate(String username, String password) throws Exception {
String sqlQuery = "SELECT "+sqlQueryColumns+" FROM users WHERE email=?;";
UserAndPassword userAndPassword = null;
try {
PreparedStatement preparedStmt = connection.prepareStatement(sqlQuery);
preparedStmt.setString(1, username);
userAndPassword = executeStatementToUser(preparedStmt);
} catch (Exception sqle) {
throw new Exception("SQL query failed - query: "+sqlQuery,sqle);
}
// Check password
String dbPassword = userAndPassword.getPassword();
if( null != dbPassword && false == dbPassword.equals(password) ) {
throw new Exception("Password mismatch");
}
return userAndPassword;