| skipped 18 lines |
19 | 19 | | from javax.swing import JTabbedPane |
20 | 20 | | from javax.swing import JFileChooser |
21 | 21 | | from javax.swing import DefaultListModel |
| 22 | + | from javax.swing import JCheckBoxMenuItem |
22 | 23 | | from threading import Lock |
23 | 24 | | from java.io import File |
24 | 25 | | from java.net import URL |
25 | 26 | | from java.awt import Color |
26 | 27 | | from java.awt import Toolkit |
| 28 | + | from java.awt.event import ItemListener |
27 | 29 | | from java.awt.event import MouseAdapter |
28 | 30 | | from java.awt.event import ActionListener |
29 | 31 | | from java.awt.event import AdjustmentListener |
| skipped 18 lines |
48 | 50 | | # create the log and a lock on which to synchronize when adding log entries |
49 | 51 | | self._log = ArrayList() |
50 | 52 | | self._lock = Lock() |
| 53 | + | self._enfocementStatuses = ["Authorization bypass!","Authorization enforced??? (please configure enforcement detector)","Authorization enforced!"] |
51 | 54 | | self.intercept = 0 |
52 | 55 | | |
53 | 56 | | self.initInterceptionFilters() |
| skipped 28 lines |
82 | 85 | | self.exportType = JComboBox(exportFileTypes) |
83 | 86 | | self.exportType.setBounds(100, 10, 200, 30) |
84 | 87 | | |
85 | | - | exportES = ["All Statuses","Authorization bypass!","Authorization enforced??? (please configure enforcement detector)","Authorization enforced!"] |
| 88 | + | exportES = ["All Statuses", self._enfocementStatuses[0], self._enfocementStatuses[1], self._enfocementStatuses[2]] |
86 | 89 | | self.exportES = JComboBox(exportES) |
87 | 90 | | self.exportES.setBounds(100, 50, 200, 30) |
88 | 91 | | |
| skipped 160 lines |
249 | 252 | | self.scrollPane = JScrollPane(self.logTable) |
250 | 253 | | self._splitpane.setLeftComponent(self.scrollPane) |
251 | 254 | | self.scrollPane.getVerticalScrollBar().addAdjustmentListener(autoScrollListener(self)) |
| 255 | + | self.menuES0 = JCheckBoxMenuItem(self._enfocementStatuses[0],True) |
| 256 | + | self.menuES1 = JCheckBoxMenuItem(self._enfocementStatuses[1],True) |
| 257 | + | self.menuES2 = JCheckBoxMenuItem(self._enfocementStatuses[2],True) |
| 258 | + | self.menuES0.addItemListener(menuTableFilter(self)) |
| 259 | + | self.menuES1.addItemListener(menuTableFilter(self)) |
| 260 | + | self.menuES2.addItemListener(menuTableFilter(self)) |
| 261 | + | |
252 | 262 | | copyURLitem = JMenuItem("Copy URL"); |
253 | 263 | | copyURLitem.addActionListener(copySelectedURL(self)) |
254 | 264 | | self.menu = JPopupMenu("Popup") |
255 | 265 | | self.menu.add(copyURLitem) |
| 266 | + | self.menu.add(self.menuES0) |
| 267 | + | self.menu.add(self.menuES1) |
| 268 | + | self.menu.add(self.menuES2) |
256 | 269 | | |
257 | 270 | | self.tabs = JTabbedPane() |
258 | 271 | | self._requestViewer = self._callbacks.createMessageEditor(self, False) |
| skipped 110 lines |
369 | 382 | | |
370 | 383 | | for i in range(0,self._log.size()): |
371 | 384 | | color = "" |
372 | | - | if self._log.get(i)._enfocementStatus == "Authorization enforced??? (please configure enforcement detector)": |
373 | | - | color = "yellow" |
374 | | - | if self._log.get(i)._enfocementStatus == "Authorization bypass!": |
| 385 | + | if self._log.get(i)._enfocementStatus == self._enfocementStatuses[0]: |
375 | 386 | | color = "red" |
376 | | - | if self._log.get(i)._enfocementStatus == "Authorization enforced!": |
| 387 | + | if self._log.get(i)._enfocementStatus == self._enfocementStatuses[1]: |
| 388 | + | color = "yellow" |
| 389 | + | if self._log.get(i)._enfocementStatus == self._enfocementStatuses[2]: |
377 | 390 | | color = "LawnGreen" |
378 | 391 | | |
379 | 392 | | if enforcementStatusFilter == "All Statuses": |
| skipped 158 lines |
538 | 551 | | EDFilters = self.EDModel.toArray() |
539 | 552 | | if oldStatusCode == newStatusCode: |
540 | 553 | | if oldContentLen == newContentLen: |
541 | | - | impression = "Authorization bypass!" |
| 554 | + | impression = self._enfocementStatuses[0] |
542 | 555 | | else: |
543 | | - | impression = "Authorization enforced??? (please configure enforcement detector)" |
| 556 | + | impression = self._enfocementStatuses[1] |
544 | 557 | | for filter in EDFilters: |
545 | 558 | | if str(filter).startswith("Content-Length: "): |
546 | 559 | | if newContentLen == filter: |
547 | | - | impression = "Authorization enforced!" |
| 560 | + | impression = self._enfocementStatuses[2] |
548 | 561 | | if str(filter).startswith("Finger Print: "): |
549 | 562 | | if filter[14:] in self._helpers.bytesToString(requestResponse.getResponse()[analyzedResponse.getBodyOffset():]): |
550 | | - | impression = "Authorization enforced!" |
| 563 | + | impression = self._enfocementStatuses[2] |
551 | 564 | | else: |
552 | | - | impression = "Authorization enforced!" |
| 565 | + | impression = self._enfocementStatuses[2] |
553 | 566 | | |
554 | 567 | | self._lock.acquire() |
555 | 568 | | row = self._log.size() |
| skipped 29 lines |
585 | 598 | | |
586 | 599 | | def prepareRenderer(self, renderer, row, column): |
587 | 600 | | c = JTable.prepareRenderer(self,renderer, row, column) |
588 | | - | impressionColor = {"Authorization bypass!":Color.RED, |
589 | | - | "Authorization enforced??? (please configure enforcement detector)":Color.YELLOW, |
590 | | - | "Authorization enforced!":Color.GREEN} |
| 601 | + | impressionColor = {self._extender._enfocementStatuses[0]:Color.RED, |
| 602 | + | self._extender._enfocementStatuses[1]:Color.YELLOW, |
| 603 | + | self._extender._enfocementStatuses[2]:Color.GREEN} |
591 | 604 | | for impression in impressionColor: |
592 | 605 | | if self._extender.getValueAt(row,1) == impression: |
593 | 606 | | c.setBackground(impressionColor[impression]); |
| skipped 64 lines |
658 | 671 | | self._extender.checkAuthorization(self._messageInfo,self._extender._helpers.analyzeResponse(self._messageInfo.getResponse()).getHeaders()) |
659 | 672 | | if self._menuName == "cookie": |
660 | 673 | | self._extender.replaceString.setText(self._extender.getCookieFromMessage(self._messageInfo)) |
| 674 | + | |
| 675 | + | class menuTableFilter(ItemListener): |
| 676 | + | def __init__(self, extender): |
| 677 | + | self._extender = extender |
| 678 | + | |
| 679 | + | def itemStateChanged(self, e): |
| 680 | + | oldLog = self._extender._log |
| 681 | + | newLog = ArrayList() |
| 682 | + | for logEntry in oldLog: |
| 683 | + | if self._extender.menuES0.getState() == True and self._extender.menuES0.getText() == logEntry._enfocementStatus: |
| 684 | + | newLog.add(logEntry) |
| 685 | + | if self._extender.menuES1.getState() == True and self._extender.menuES1.getText() == logEntry._enfocementStatus: |
| 686 | + | newLog.add(logEntry) |
| 687 | + | if self._extender.menuES2.getState() == True and self._extender.menuES2.getText() == logEntry._enfocementStatus: |
| 688 | + | newLog.add(logEntry) |
| 689 | + | |
| 690 | + | self._extender._log = newLog |
| 691 | + | self._extender._lock.acquire() |
| 692 | + | row = newLog.size() |
| 693 | + | self._extender.fireTableRowsInserted(row, row) |
| 694 | + | self._extender._lock.release() |