Projects STRLCPY LoggerPlusPlus Commits 4fc55941
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■ ■
    src/main/java/com/nccgroup/loggerplusplus/LoggerPlusPlus.java
    skipped 64 lines
    65 65   //Darcula is not installed.
    66 66   }
    67 67   
     68 + if(LoggerPlusPlus.instance != null){
     69 + callbacks.printError("Existing Logger++ extension detected! Have you installed the Jar twice?");
     70 + }
     71 + 
    68 72   //Burp Specific
    69 73   LoggerPlusPlus.instance = this;
    70 74   LoggerPlusPlus.callbacks = callbacks;
    skipped 120 lines
    191 195   
    192 196   //Stop LogManager executors and pending tasks.
    193 197   logManager.shutdown();
     198 + 
     199 + //Null out static variables so not leftover.
     200 + LoggerPlusPlus.instance = null;
     201 + LoggerPlusPlus.preferences = null;
     202 + LoggerPlusPlus.callbacks = null;
     203 + LoggerPlusPlus.gsonProvider = null;
    194 204   }
    195 205   
    196 206   @Override
    skipped 10 lines
    207 217   
    208 218   @Override
    209 219   public void logOutput(String message) {
     220 + System.out.println(message);
    210 221   callbacks.printOutput(message);
    211 222   if(preferences == null) {
    212 223   Boolean isDebug = gsonProvider.getGson().fromJson(callbacks.loadExtensionSetting(Globals.PREF_IS_DEBUG), Boolean.class);
    skipped 10 lines
    223 234   
    224 235   @Override
    225 236   public void logError(String errorMessage) {
     237 + System.err.println(errorMessage);
    226 238   callbacks.printError(errorMessage);
    227 239   if(preferences == null) {
    228 240   Boolean isDebug = gsonProvider.getGson().fromJson(callbacks.loadExtensionSetting(Globals.PREF_IS_DEBUG), Boolean.class);
    skipped 69 lines
  • ■ ■ ■ ■ ■
    src/main/java/com/nccgroup/loggerplusplus/LoggerPreferenceFactory.java
    skipped 11 lines
    12 12  import com.nccgroup.loggerplusplus.filter.savedfilter.SavedFilter;
    13 13  import com.nccgroup.loggerplusplus.util.Globals;
    14 14   
     15 +import javax.swing.*;
    15 16  import java.util.*;
    16 17   
    17 18  import static com.nccgroup.loggerplusplus.util.Globals.*;
    skipped 45 lines
    63 64   prefs.registerSetting(PREF_COLOR_FILTERS, new TypeToken<Map<UUID, ColorFilter>>() {}.getType(), defaultColorFilters);
    64 65   prefs.registerSetting(PREF_SAVED_FILTERS, new TypeToken<List<SavedFilter>>() {}.getType(), new ArrayList<SavedFilter>());
    65 66   prefs.registerSetting(PREF_SORT_COLUMN, Integer.class, -1, Preferences.Visibility.GLOBAL);
    66  - prefs.registerSetting(PREF_SORT_ORDER, String.class, "ASCENDING", Preferences.Visibility.GLOBAL);
     67 + prefs.registerSetting(PREF_SORT_ORDER, SortOrder.class, SortOrder.UNSORTED, Preferences.Visibility.GLOBAL);
    67 68   prefs.registerSetting(PREF_RESPONSE_TIMEOUT, Integer.class, 60000, Preferences.Visibility.GLOBAL);
    68 69   prefs.registerSetting(PREF_MAXIMUM_ENTRIES, Integer.class, 5000, Preferences.Visibility.GLOBAL);
    69 70   prefs.registerSetting(PREF_SEARCH_THREADS, Integer.class, 5, Preferences.Visibility.GLOBAL);
    skipped 15 lines
  • ■ ■ ■ ■ ■
    src/main/java/com/nccgroup/loggerplusplus/logentry/LogManager.java
    skipped 1 lines
    2 2   
    3 3  import burp.*;
    4 4  import com.nccgroup.loggerplusplus.LoggerPlusPlus;
    5  -import com.nccgroup.loggerplusplus.util.MoreHelp;
    6 5  import com.nccgroup.loggerplusplus.filter.colorfilter.ColorFilter;
    7 6  import com.nccgroup.loggerplusplus.logview.LogViewPanel;
     7 +import com.nccgroup.loggerplusplus.util.MoreHelp;
    8 8  import com.nccgroup.loggerplusplus.util.NamedThreadFactory;
    9 9   
    10 10  import javax.swing.*;
    skipped 38 lines
    49 49   requestsAwaitingResponse = new ConcurrentHashMap<>();
    50 50   LoggerPlusPlus.callbacks.getProxyHistory();
    51 51   
    52  - //TODO Customizable LogManager thread count.
    53 52   executorService = Executors.newFixedThreadPool(20, new NamedThreadFactory("LPP-LogManager"));
    54 53   
    55 54   //Create incomplete request cleanup thread so map doesn't get too big.
    skipped 355 lines
    411 410   }
    412 411   
    413 412   public void importProxyHistory(boolean askConfirmation){
    414  - //TODO Fix time bug for imported results
     413 + //TODO Fix time bug for imported results. Multithreading means results will likely end up mixed.
    415 414   int result = JOptionPane.OK_OPTION;
    416 415   int historySize = LoggerPlusPlus.callbacks.getProxyHistory().length;
    417 416   int maxEntries = LoggerPlusPlus.preferences.getSetting(PREF_MAXIMUM_ENTRIES);
    skipped 47 lines
  • ■ ■ ■ ■ ■ ■
    src/main/java/com/nccgroup/loggerplusplus/logview/logtable/LogTable.java
    skipped 3 lines
    4 4  // extend JTable to handle cell selection and column move/resize
    5 5  //
    6 6   
    7  -import com.nccgroup.loggerplusplus.logview.LogTableFilterStatusListener;
    8 7  import com.nccgroup.loggerplusplus.LoggerPlusPlus;
    9  -import com.nccgroup.loggerplusplus.logview.RequestViewerController;
    10 8  import com.nccgroup.loggerplusplus.filter.colorfilter.ColorFilter;
    11 9  import com.nccgroup.loggerplusplus.filter.colorfilter.ColorFilterListener;
    12 10  import com.nccgroup.loggerplusplus.filter.logfilter.LogFilter;
    skipped 2 lines
    15 13  import com.nccgroup.loggerplusplus.logentry.LogEntry;
    16 14  import com.nccgroup.loggerplusplus.logentry.LogEntryListener;
    17 15  import com.nccgroup.loggerplusplus.logview.LogEntryMenu;
     16 +import com.nccgroup.loggerplusplus.logview.LogTableFilterStatusListener;
     17 +import com.nccgroup.loggerplusplus.logview.RequestViewerController;
    18 18  import com.nccgroup.loggerplusplus.userinterface.LogTableModel;
    19 19  import com.nccgroup.loggerplusplus.userinterface.renderer.BooleanRenderer;
    20 20  import com.nccgroup.loggerplusplus.util.Globals;
    skipped 5 lines
    26 26  import java.awt.*;
    27 27  import java.awt.event.MouseAdapter;
    28 28  import java.awt.event.MouseEvent;
     29 +import java.util.List;
    29 30  import java.util.*;
    30  -import java.util.List;
    31 31   
    32 32  public class LogTable extends JTable implements LogFilterListener, ColorFilterListener, LogEntryListener
    33 33  {
    skipped 23 lines
    57 57   LoggerPlusPlus.preferences.setSetting(Globals.PREF_SORT_COLUMN, null);
    58 58   }else {
    59 59   RowSorter.SortKey sortKey = sortKeys.get(0);
    60  - LoggerPlusPlus.preferences.setSetting(Globals.PREF_SORT_ORDER, String.valueOf(sortKey.getSortOrder()));
     60 + LoggerPlusPlus.preferences.setSetting(Globals.PREF_SORT_ORDER, sortKey.getSortOrder());
    61 61   LoggerPlusPlus.preferences.setSetting(Globals.PREF_SORT_COLUMN, sortKey.getColumn());
    62 62   }
    63 63   });
    64 64   
    65 65   Integer sortColumn = LoggerPlusPlus.preferences.getSetting(Globals.PREF_SORT_COLUMN);
    66  - SortOrder sortOrder;
    67  - try{
    68  - sortOrder = SortOrder.valueOf(LoggerPlusPlus.preferences.getSetting(Globals.PREF_SORT_ORDER));
    69  - }catch(Exception e){
    70  - sortOrder = SortOrder.ASCENDING;
    71  - }
    72  - if(sortColumn > 0){ //TODO Fix bug with renderer throwing null pointer when
     66 + SortOrder sortOrder = LoggerPlusPlus.preferences.getSetting(Globals.PREF_SORT_ORDER);
     67 + if(sortColumn >= 0 && sortOrder != SortOrder.UNSORTED){
    73 68   this.getRowSorter().setSortKeys(Collections.singletonList(new RowSorter.SortKey(sortColumn, sortOrder)));
    74 69   }
    75 70   
    skipped 11 lines
    87 82   }
    88 83   }
    89 84   });
     85 + //TODO Multi selection + relevant context menu changes
    90 86   this.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    91 87   
    92 88   registerListeners();
    skipped 239 lines
  • ■ ■ ■ ■ ■
    src/main/java/com/nccgroup/loggerplusplus/userinterface/TableHeaderMenu.java
    skipped 54 lines
    55 55   try {
    56 56   Pattern.compile(newValue);
    57 57   columnObj.getRegExData().setRegExString(newValue);
    58  - saveAndReloadTableSettings(); //TODO do we need it?
    59 58   } catch (PatternSyntaxException exception) {
    60  - LoggerPlusPlus.callbacks.printError("provided regular expression was wrong. It cannot be saved.");
    61  - MoreHelp.showWarningMessage("The provided regular expression string was NOT in correct format. It cannot be saved.");
     59 + LoggerPlusPlus.callbacks.printError("Regular expression was invalid. It cannot be saved.");
     60 + MoreHelp.showWarningMessage("The provided regular expression string was invalid. It cannot be saved.");
    62 61   }
    63 62   }
    64 63   }
    skipped 120 lines
Please wait...
Page is in error, reload to recover