1
2
3
4
5
6
7
8
9
10
11 package com.jsql.view.swing.tab;
12
13 import com.jsql.view.swing.manager.*;
14 import com.jsql.view.swing.util.MediatorHelper;
15 import com.jsql.view.swing.util.UiUtil;
16 import org.apache.commons.lang3.StringUtils;
17
18 import javax.swing.*;
19 import java.awt.*;
20 import java.util.Arrays;
21 import java.util.List;
22 import java.util.concurrent.atomic.AtomicInteger;
23
24
25
26
27 public class TabManagersCards extends JPanel {
28
29 private final ManagerFile managerFile = new ManagerFile();
30 private final ManagerExploit managerExploit = new ManagerExploit();
31
32
33
34
35 public TabManagersCards() {
36 this.setName("tabManagersProxy");
37 this.setLayout(new CardLayout());
38 this.setMinimumSize(new Dimension(100, 0));
39
40 var managerScanList = new ManagerScan();
41 var managerDatabase = new ManagerDatabase();
42 var managerAdminPage = new ManagerAdminPage();
43 var managerBruteForce = new ManagerBruteForce();
44
45 MediatorHelper.register(this.managerFile);
46 MediatorHelper.register(this.managerExploit);
47 MediatorHelper.register(managerScanList);
48 MediatorHelper.register(managerAdminPage);
49 MediatorHelper.register(managerBruteForce);
50
51 var managers = Arrays.asList(
52 managerDatabase, managerAdminPage, this.managerFile, this.managerExploit, managerBruteForce,
53 new ManagerCoder(), managerScanList
54 );
55 AtomicInteger i = new AtomicInteger();
56 MediatorHelper.frame().getTabManagers().getIconsTabs().forEach(modelSvgIcon -> this.buildI18nTab(
57 modelSvgIcon.getKeyLabel(),
58 managers.get(i.getAndIncrement())
59 ));
60
61 MediatorHelper.register(this);
62 }
63
64 public void addToLists(String path, String name) {
65 this.managerExploit.addToList(path.replace(name, StringUtils.EMPTY));
66 }
67
68 public void markFileSystemInvulnerable() {
69 this.getManagers().forEach(manager -> {
70 manager.changePrivilegeIcon(UiUtil.CROSS_RED.getIcon());
71 manager.endProcess();
72 });
73 }
74
75 public void endPreparation() {
76 this.getManagers().forEach(manager -> manager.setButtonEnable(true));
77 }
78
79 public void markFileSystemVulnerable() {
80 this.getManagers().forEach(manager -> manager.changePrivilegeIcon(UiUtil.TICK_GREEN.getIcon()));
81 }
82
83 private void buildI18nTab(String keyLabel, Component manager) {
84 manager.setName(keyLabel);
85 this.add(manager, keyLabel);
86 }
87
88 private List<AbstractManagerList> getManagers() {
89 return Arrays.asList(this.managerFile, this.managerExploit);
90 }
91 }