Projects STRLCPY autorize Commits e658e1cc
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • gui/configuration_tab.py
    Content is identical
  • ■ ■ ■ ■ ■
    gui/export.py
    skipped 12 lines
    13 13  from javax.swing import JFrame
    14 14  from java.awt import Font
    15 15  from java.io import File
     16 +from javax.swing import JCheckBox
     17 +from java.awt.event import ItemListener
     18 + 
    16 19   
    17 20  from save_restore import SaveRestore
    18 21   
     22 +class RemoveDups(ItemListener):
     23 + def __init__(self, extender):
     24 + self._extender = extender
     25 + 
     26 + def itemStateChanged(self, e):
     27 + return True
     28 + 
     29 + 
    19 30  class Export():
     31 + 
    20 32   def __init__(self, extender):
    21 33   self._extender = extender
    22 34   self.BYPASSSED_STR = extender.BYPASSSED_STR
    skipped 1 lines
    24 36   self.IS_ENFORCED_STR = extender.IS_ENFORCED_STR
    25 37   self._log = extender._log
    26 38   self.save_restore = SaveRestore(extender)
     39 + 
    27 40   
    28 41   def draw(self):
    29 42   """ init Save/Restore
    skipped 22 lines
    52 65   exportLES = JLabel("Statuses:")
    53 66   exportLES.setBounds(10, 90, 100, 30)
    54 67   
     68 + self.removeDuplicates = JCheckBox("Remove Duplicates")
     69 + self.removeDuplicates.setBounds(8, 120, 300, 30)
     70 + self.removeDuplicates.setSelected(True)
     71 + self.removeDuplicates.addItemListener(RemoveDups(self._extender))
     72 + 
    55 73   self.exportButton = JButton("Export",
    56 74   actionPerformed=self.export)
    57 75   self.exportButton.setBounds(390, 50, 100, 30)
    58 76   
    59  - saveRestoreLabel = JLabel("Save / Restore:")
    60  - saveRestoreLabel.setBounds(10, 250, 100, 30)
     77 + saveRestoreLabel = JLabel("State:")
     78 + saveRestoreLabel.setBounds(10, 160, 250, 30)
    61 79   saveRestoreLabel.setFont(boldFont)
    62 80   
    63  - self.saveStateButton = JButton("Save state",
     81 + self.saveStateButton = JButton("Save",
    64 82   actionPerformed=self.saveStateAction)
    65 83   self.saveStateButton.setBounds(10, 200, 100, 30)
    66 84   
    67  - self.restoreStateButton = JButton("Restore state",
     85 + self.restoreStateButton = JButton("Restore",
    68 86   actionPerformed=self.restoreStateAction)
    69 87   self.restoreStateButton.setBounds(390, 200, 100, 30)
    70 88  
    skipped 10 lines
    81 99   exportPnl.add(saveRestoreLabel)
    82 100   exportPnl.add(self.saveStateButton)
    83 101   exportPnl.add(self.restoreStateButton)
     102 + exportPnl.add(self.removeDuplicates)
    84 103   
    85 104   def export(self, event):
    86 105   if self.exportType.getSelectedItem() == "HTML":
    skipped 46 lines
    133 152   <div class="datagrid"><table>
    134 153   <thead><tr><th width=\"3%\">ID</th><th width=\"5%\">Method</th><th width=\"43%\">URL</th><th width=\"9%\">Original length</th><th width=\"9%\">Modified length</th><th width=\"9%\">Unauthorized length</th><th width=\"11%\">Authorization Enforcement Status</th><th width=\"11%\">Authorization Unauthenticated Status</th></tr></thead>
    135 154   <tbody>"""
    136  - 
     155 + unique_HTML_lines = set() # set to keep track of unique values
    137 156   for i in range(0,self._log.size()):
     157 + if self.removeDuplicates.isSelected():
     158 + # line data only looks for method, url, and authorized status. Does not factor in size of request during comparision
     159 + lineData = "\t%s\t%s\t%s\t%s\n" % (self._log.get(i)._method, self._log.get(i)._url, self._log.get(i)._enfocementStatus,self._log.get(i)._enfocementStatusUnauthorized)
     160 + if lineData in unique_HTML_lines: # Skip if line is already in set
     161 + continue
     162 + else: # Add line to set and continue with execution
     163 + unique_HTML_lines.add(lineData)
    138 164   color_modified = ""
    139 165   if self._log.get(i)._enfocementStatus == self.BYPASSSED_STR:
    140 166   color_modified = "red"
    skipped 42 lines
    183 209   enforcementStatusFilter = self.exportES.getSelectedItem()
    184 210   csvContent = "id\tMethod\tURL\tOriginal length\tModified length\tUnauthorized length\tAuthorization Enforcement Status\tAuthorization Unauthenticated Status\n"
    185 211   
    186  - for i in range(0,self._log.size()):
    187  - 
     212 + unique_CVS_lines = set()
     213 + for i in range(0, self._log.size()):
     214 + if self.removeDuplicates.isSelected():
     215 + # line data only looks for method, url, and authorized status. Does not factor in size of request during comparision
     216 + lineData = "\t%s\t%s\t%s\t%s\n" % (self._log.get(i)._method, self._log.get(i)._url, self._log.get(i)._enfocementStatus,self._log.get(i)._enfocementStatusUnauthorized)
     217 + if lineData in unique_CVS_lines: # Skip if line is already in set
     218 + continue
     219 + else: # Add line to set and continue with execution
     220 + unique_CVS_lines.add(lineData)
    188 221   if enforcementStatusFilter == "All Statuses":
    189 222   csvContent += "%d\t%s\t%s\t%d\t%d\t%d\t%s\t%s\n" % (self._log.get(i)._id, self._log.get(i)._method, self._log.get(i)._url, len(self._log.get(i)._originalrequestResponse.getResponse()) if self._log.get(i)._originalrequestResponse is not None else 0, len(self._log.get(i)._requestResponse.getResponse()) if self._log.get(i)._requestResponse is not None else 0, len(self._log.get(i)._unauthorizedRequestResponse.getResponse()) if self._log.get(i)._unauthorizedRequestResponse is not None else 0, self._log.get(i)._enfocementStatus, self._log.get(i)._enfocementStatusUnauthorized)
    190 223   elif enforcementStatusFilter == "As table filter":
    skipped 9 lines
    200 233   if (enforcementStatusFilter == self._log.get(i)._enfocementStatus) or (enforcementStatusFilter == self._log.get(i)._enfocementStatusUnauthorized):
    201 234   csvContent += "%d\t%s\t%s\t%d\t%d\t%d\t%s\t%s\n" % (self._log.get(i)._id, self._log.get(i)._method, self._log.get(i)._url, len(self._log.get(i)._originalrequestResponse.getResponse()) if self._log.get(i)._originalrequestResponse is not None else 0, len(self._log.get(i)._requestResponse.getResponse()) if self._log.get(i)._requestResponse is not None else 0, len(self._log.get(i)._unauthorizedRequestResponse.getResponse()) if self._log.get(i)._unauthorizedRequestResponse is not None else 0, self._log.get(i)._enfocementStatus, self._log.get(i)._enfocementStatusUnauthorized)
    202 235   
     236 + 
    203 237   f = open(fileToSave.getAbsolutePath(), 'w')
    204 238   f.writelines(csvContent)
    205 239   f.close()
    206 240   
     241 + 
Please wait...
Page is in error, reload to recover