private String getPasswordForUser(Connection conn, String username) throws SQLException {

    PreparedStatement ps = null;
    ResultSet rs = null;
    String password = null;
    try {
      ps = conn.prepareStatement(authenticationQuery);
      ps.setString(1, username);

      rs = ps.executeQuery();

      boolean foundResult = false;
      while (rs.next()) {

        if (foundResult) {
          throw new AuthenticationException(
              "More than one user row found for user ["
                  + username
                  + "]. Usernames must be unique.");
        }

        password = rs.getString(1);

        foundResult = true;
      }
    } finally {
      JdbcUtils.closeResultSet(rs);
      JdbcUtils.closeStatement(ps);
    }

    return password;
  }