mirror of
https://github.com/elisspace/autopsy.git
synced 2026-09-01 08:53:51 +00:00
include queries
This commit is contained in:
@@ -20,17 +20,30 @@ package org.sleuthkit.autopsy.mainui.datamodel;
|
||||
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.collect.Range;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.logging.Level;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.datamodel.CreditCards;
|
||||
import org.sleuthkit.autopsy.datamodel.accounts.Accounts;
|
||||
import org.sleuthkit.autopsy.datamodel.accounts.BINRange;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.events.CommAccountsEvent;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.events.DAOEvent;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.events.TreeCounts;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.events.TreeEvent;
|
||||
import org.sleuthkit.datamodel.Account;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||
import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
import org.sleuthkit.datamodel.TskCoreException;
|
||||
import org.sleuthkit.datamodel.TskData;
|
||||
|
||||
/**
|
||||
* DAO for fetching credit card information.
|
||||
@@ -60,11 +73,46 @@ public class CreditCardDAO extends AbstractDAO {
|
||||
}
|
||||
|
||||
public SearchResultsDTO getCreditCardByFile(CreditCardFileSearchParams searchParams) {
|
||||
|
||||
// String query
|
||||
// = "SELECT blackboard_artifacts.artifact_obj_id " //NON-NLS
|
||||
// + " FROM blackboard_artifacts " //NON-NLS
|
||||
// + " JOIN blackboard_attributes ON blackboard_artifacts.artifact_id = blackboard_attributes.artifact_id " //NON-NLS
|
||||
// + " WHERE blackboard_artifacts.artifact_type_id = " + BlackboardArtifact.Type.TSK_ACCOUNT.getTypeID() //NON-NLS
|
||||
// + " AND blackboard_attributes.attribute_type_id = " + BlackboardAttribute.ATTRIBUTE_TYPE.TSK_CARD_NUMBER.getTypeID() //NON-NLS
|
||||
// + " AND blackboard_attributes.value_text >= '" + bin.getBINStart() + "' AND blackboard_attributes.value_text < '" + (bin.getBINEnd() + 1) + "'" //NON-NLS
|
||||
// + getFilterByDataSourceClause()
|
||||
// + getRejectedArtifactFilterClause()
|
||||
// + " ORDER BY blackboard_attributes.value_text"; //NON-NLS
|
||||
// try (SleuthkitCase.CaseDbQuery results = skCase.executeQuery(query);
|
||||
// ResultSet rs = results.getResultSet();) {
|
||||
// while (rs.next()) {
|
||||
// list.add(skCase.getBlackboard().getDataArtifactById(rs.getLong("artifact_obj_id"))); //NON-NLS
|
||||
// }
|
||||
// } catch (TskCoreException | SQLException ex) {
|
||||
// LOGGER.log(Level.SEVERE, "Error querying for account artifacts.", ex); //NON-NLS
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
private SearchResultsDTO fetchCreditCardByFile(CreditCardFileSearchParams searchParams) {
|
||||
|
||||
// String query
|
||||
// = "SELECT count(blackboard_artifacts.artifact_id ) AS count" //NON-NLS
|
||||
// + " FROM blackboard_artifacts " //NON-NLS
|
||||
// + " JOIN blackboard_attributes ON blackboard_artifacts.artifact_id = blackboard_attributes.artifact_id " //NON-NLS
|
||||
// + " WHERE blackboard_artifacts.artifact_type_id = " + BlackboardArtifact.Type.TSK_ACCOUNT.getTypeID() //NON-NLS
|
||||
// + " AND blackboard_attributes.attribute_type_id = " + BlackboardAttribute.ATTRIBUTE_TYPE.TSK_CARD_NUMBER.getTypeID() //NON-NLS
|
||||
// + " AND blackboard_attributes.value_text >= '" + bin.getBINStart() + "' AND blackboard_attributes.value_text < '" + (bin.getBINEnd() + 1) + "'" //NON-NLS
|
||||
// + getFilterByDataSourceClause()
|
||||
// + getRejectedArtifactFilterClause();
|
||||
// try (SleuthkitCase.CaseDbQuery results = skCase.executeQuery(query);
|
||||
// ResultSet resultSet = results.getResultSet();) {
|
||||
// while (resultSet.next()) {
|
||||
// setDisplayName(getBinRangeString(bin) + " (" + resultSet.getLong("count") + ")"); //NON-NLS
|
||||
// }
|
||||
// } catch (TskCoreException | SQLException ex) {
|
||||
// LOGGER.log(Level.SEVERE, "Error querying for account artifacts.", ex); //NON-NLS
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
public SearchResultsDTO getCreditCardByBin(CreditCardBinSearchParams searchParams) {
|
||||
@@ -72,15 +120,88 @@ public class CreditCardDAO extends AbstractDAO {
|
||||
}
|
||||
|
||||
public SearchResultsDTO fetchCreditCardByBin(CreditCardBinSearchParams searchParams) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
public TreeResultsDTO<CreditCardBinSearchParams> getCreditCardBinCounts(Long dataSourceId) {
|
||||
|
||||
// String query
|
||||
// = "SELECT blackboard_artifacts.obj_id," //NON-NLS
|
||||
// + " solr_attribute.value_text AS solr_document_id, "; //NON-NLS
|
||||
// if (skCase.getDatabaseType().equals(TskData.DbType.POSTGRESQL)) {
|
||||
// query += " string_agg(blackboard_artifacts.artifact_id::character varying, ',') AS artifact_IDs, " //NON-NLS
|
||||
// + " string_agg(blackboard_artifacts.review_status_id::character varying, ',') AS review_status_ids, ";
|
||||
// } else {
|
||||
// query += " GROUP_CONCAT(blackboard_artifacts.artifact_id) AS artifact_IDs, " //NON-NLS
|
||||
// + " GROUP_CONCAT(blackboard_artifacts.review_status_id) AS review_status_ids, ";
|
||||
// }
|
||||
// query += " COUNT( blackboard_artifacts.artifact_id) AS hits " //NON-NLS
|
||||
// + " FROM blackboard_artifacts " //NON-NLS
|
||||
// + " LEFT JOIN blackboard_attributes as solr_attribute ON blackboard_artifacts.artifact_id = solr_attribute.artifact_id " //NON-NLS
|
||||
// + " AND solr_attribute.attribute_type_id = " + BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD_SEARCH_DOCUMENT_ID.getTypeID() //NON-NLS
|
||||
// + " LEFT JOIN blackboard_attributes as account_type ON blackboard_artifacts.artifact_id = account_type.artifact_id " //NON-NLS
|
||||
// + " AND account_type.attribute_type_id = " + BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ACCOUNT_TYPE.getTypeID() //NON-NLS
|
||||
// + " AND account_type.value_text = '" + Account.Type.CREDIT_CARD.getTypeName() + "'" //NON-NLS
|
||||
// + " WHERE blackboard_artifacts.artifact_type_id = " + BlackboardArtifact.Type.TSK_ACCOUNT.getTypeID() //NON-NLS
|
||||
// + getFilterByDataSourceClause()
|
||||
// + getRejectedArtifactFilterClause()
|
||||
// + " GROUP BY blackboard_artifacts.obj_id, solr_document_id " //NON-NLS
|
||||
// + " ORDER BY hits DESC "; //NON-NLS
|
||||
// try (SleuthkitCase.CaseDbQuery results = skCase.executeQuery(query);
|
||||
// ResultSet resultSet = results.getResultSet();) {
|
||||
// while (resultSet.next()) {
|
||||
// list.add(new Accounts.FileWithCCN(
|
||||
// resultSet.getLong("obj_id"), //NON-NLS
|
||||
// resultSet.getString("solr_document_id"), //NON-NLS
|
||||
// unGroupConcat(resultSet.getString("artifact_IDs"), Long::valueOf), //NON-NLS
|
||||
// resultSet.getLong("hits"), //NON-NLS
|
||||
// new HashSet<>(unGroupConcat(resultSet.getString("review_status_ids"), reviewStatusID -> BlackboardArtifact.ReviewStatus.withID(Integer.valueOf(reviewStatusID)))))); //NON-NLS
|
||||
// }
|
||||
// } catch (TskCoreException | SQLException ex) {
|
||||
// LOGGER.log(Level.SEVERE, "Error querying for files with ccn hits.", ex); //NON-NLS
|
||||
//
|
||||
// }
|
||||
// return true;
|
||||
}
|
||||
|
||||
public TreeResultsDTO<CreditCardFileSearchParams> getCreditCardFileCounts(Long dataSourceId) {
|
||||
|
||||
//
|
||||
// String query
|
||||
// = "SELECT SUBSTR(blackboard_attributes.value_text,1,8) AS BIN, " //NON-NLS
|
||||
// + " COUNT(blackboard_artifacts.artifact_id) AS count " //NON-NLS
|
||||
// + " FROM blackboard_artifacts " //NON-NLS
|
||||
// + " JOIN blackboard_attributes ON blackboard_artifacts.artifact_id = blackboard_attributes.artifact_id" //NON-NLS
|
||||
// + " WHERE blackboard_artifacts.artifact_type_id = " + BlackboardArtifact.Type.TSK_ACCOUNT.getTypeID() //NON-NLS
|
||||
// + " AND blackboard_attributes.attribute_type_id = " + BlackboardAttribute.ATTRIBUTE_TYPE.TSK_CARD_NUMBER.getTypeID() //NON-NLS
|
||||
// + getFilterByDataSourceClause()
|
||||
// + getRejectedArtifactFilterClause()
|
||||
// + " GROUP BY BIN " //NON-NLS
|
||||
// + " ORDER BY BIN "; //NON-NLS
|
||||
// try (SleuthkitCase.CaseDbQuery results = skCase.executeQuery(query);
|
||||
// ResultSet resultSet = results.getResultSet();) {
|
||||
// //sort all te individual bins in to the ranges
|
||||
// while (resultSet.next()) {
|
||||
// final Integer bin = Integer.valueOf(resultSet.getString("BIN"));
|
||||
// long count = resultSet.getLong("count");
|
||||
//
|
||||
// BINRange binRange = (BINRange) CreditCards.getBINInfo(bin);
|
||||
// Accounts.BinResult previousResult = binRanges.get(bin);
|
||||
//
|
||||
// if (previousResult != null) {
|
||||
// binRanges.remove(Range.closed(previousResult.getBINStart(), previousResult.getBINEnd()));
|
||||
// count += previousResult.getCount();
|
||||
// }
|
||||
//
|
||||
// if (binRange == null) {
|
||||
// binRanges.put(Range.closed(bin, bin), new Accounts.BinResult(count, bin, bin));
|
||||
// } else {
|
||||
// binRanges.put(Range.closed(binRange.getBINstart(), binRange.getBINend()), new Accounts.BinResult(count, binRange));
|
||||
// }
|
||||
// }
|
||||
// binRanges.asMapOfRanges().values().forEach(list::add);
|
||||
// } catch (TskCoreException | SQLException ex) {
|
||||
// LOGGER.log(Level.SEVERE, "Error querying for BINs.", ex); //NON-NLS
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
// is account invalidating
|
||||
|
||||
Reference in New Issue
Block a user