Beispiel #1
0
  @Override
  public Pair<User, Account> findUserAccountByApiKey(String apiKey) {
    Transaction txn = Transaction.currentTxn();
    PreparedStatement pstmt = null;
    Pair<User, Account> userAcctPair = null;
    try {
      String sql = FIND_USER_ACCOUNT_BY_API_KEY;
      pstmt = txn.prepareAutoCloseStatement(sql);
      pstmt.setString(1, apiKey);
      ResultSet rs = pstmt.executeQuery();
      // TODO:  make sure we don't have more than 1 result?  ApiKey had better be unique
      if (rs.next()) {
        User u = new UserVO(rs.getLong(1));
        u.setUsername(rs.getString(2));
        u.setAccountId(rs.getLong(3));
        u.setSecretKey(DBEncryptionUtil.decrypt(rs.getString(4)));
        u.setState(State.valueOf(rs.getString(5)));

        AccountVO a = new AccountVO(rs.getLong(6));
        a.setAccountName(rs.getString(7));
        a.setType(rs.getShort(8));
        a.setDomainId(rs.getLong(9));
        a.setState(State.valueOf(rs.getString(10)));

        userAcctPair = new Pair<User, Account>(u, a);
      }
    } catch (Exception e) {
      s_logger.warn("Exception finding user/acct by api key: " + apiKey, e);
    }
    return userAcctPair;
  }