Tabs disabled until loaded from database, auto-load database on connect, and more simplified database calls,
git-svn-id: file:///home/svn/framework3/trunk@10161 4d416f70-5f16-0410-b530-b9f4589650daunstable
parent
4651a0ad33
commit
8f52ae02df
Binary file not shown.
|
@ -10,20 +10,20 @@
|
|||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jTabbedPane1" alignment="0" pref="882" max="32767" attributes="0"/>
|
||||
<Component id="tabbedPane" alignment="0" pref="882" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jTabbedPane1" alignment="1" pref="532" max="32767" attributes="0"/>
|
||||
<Component id="tabbedPane" alignment="1" pref="532" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Container class="javax.swing.JTabbedPane" name="jTabbedPane1">
|
||||
<Container class="javax.swing.JTabbedPane" name="tabbedPane">
|
||||
<Properties>
|
||||
<Property name="selectedIndex" type="int" value="1"/>
|
||||
<Property name="name" type="java.lang.String" value="jTabbedPane1" noResource="true"/>
|
||||
<Property name="name" type="java.lang.String" value="tabbedPane" noResource="true"/>
|
||||
</Properties>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
|
||||
|
@ -616,7 +616,7 @@
|
|||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="statusMessageLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="696" max="32767" attributes="0"/>
|
||||
<EmptySpace pref="698" max="32767" attributes="0"/>
|
||||
<Component id="progressBar" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="statusAnimationLabel" min="-2" max="-2" attributes="0"/>
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
package msfgui;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.HeadlessException;
|
||||
import java.awt.event.WindowEvent;
|
||||
import javax.swing.JTable;
|
||||
|
@ -27,7 +26,6 @@ import java.util.HashMap;
|
|||
import java.util.TreeMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import javax.swing.Timer;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JComponent;
|
||||
|
@ -136,6 +134,9 @@ public class MainFrame extends FrameView {
|
|||
});
|
||||
//Setup icon
|
||||
this.getFrame().setIconImage( resourceMap.getImageIcon("main.icon").getImage());
|
||||
//Disable tabs by default
|
||||
for(int i = 2; i <= 5; i++)
|
||||
tabbedPane.setEnabledAt(i, false);
|
||||
}
|
||||
|
||||
private void confirmStop() {
|
||||
|
@ -352,10 +353,10 @@ public class MainFrame extends FrameView {
|
|||
//Exploits and auxiliary get modulepopups; payloads get payloadpopups duh
|
||||
setMessage("Getting exploits");
|
||||
expandList((Object[]) ((Map)rpcConn.execute("module.exploits")).get("modules"), exploitsMenu, moduleFactory, "exploit");
|
||||
setProgress(0.33f);
|
||||
setProgress(0.3f);
|
||||
setMessage("Getting auxiliary modules");
|
||||
expandList((Object[]) ((Map)rpcConn.execute("module.auxiliary")).get("modules"), auxiliaryMenu, moduleFactory, "auxiliary");
|
||||
setProgress(0.66f);
|
||||
setProgress(0.5f);
|
||||
setMessage("Getting payloads");
|
||||
expandList((Object[]) ((Map)rpcConn.execute("module.payloads")).get("modules"), payloadsMenu, new RunMenuFactory(){
|
||||
public ActionListener getActor(final String modName, final String type, final RpcConnection rpcConn) {
|
||||
|
@ -366,6 +367,9 @@ public class MainFrame extends FrameView {
|
|||
};
|
||||
}
|
||||
}, "payload");
|
||||
setProgress(0.8f);
|
||||
setMessage("Querying database...");
|
||||
reloadDb();
|
||||
setProgress(1.0f);
|
||||
} catch (MsfException ex) {
|
||||
statusAnimationLabel.setText("Error getting module lists. " + ex);
|
||||
|
@ -393,7 +397,7 @@ public class MainFrame extends FrameView {
|
|||
private void initComponents() {
|
||||
|
||||
mainPanel = new javax.swing.JPanel();
|
||||
jTabbedPane1 = new javax.swing.JTabbedPane();
|
||||
tabbedPane = new javax.swing.JTabbedPane();
|
||||
jScrollPane1 = new javax.swing.JScrollPane();
|
||||
jobsList = new javax.swing.JList();
|
||||
jScrollPane2 = new javax.swing.JScrollPane();
|
||||
|
@ -444,7 +448,7 @@ public class MainFrame extends FrameView {
|
|||
|
||||
mainPanel.setName("mainPanel"); // NOI18N
|
||||
|
||||
jTabbedPane1.setName("jTabbedPane1"); // NOI18N
|
||||
tabbedPane.setName("tabbedPane"); // NOI18N
|
||||
|
||||
jScrollPane1.setName("jScrollPane1"); // NOI18N
|
||||
jScrollPane1.setPreferredSize(new java.awt.Dimension(10, 10));
|
||||
|
@ -453,7 +457,7 @@ public class MainFrame extends FrameView {
|
|||
jScrollPane1.setViewportView(jobsList);
|
||||
|
||||
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(msfgui.MsfguiApp.class).getContext().getResourceMap(MainFrame.class);
|
||||
jTabbedPane1.addTab(resourceMap.getString("jScrollPane1.TabConstraints.tabTitle"), jScrollPane1); // NOI18N
|
||||
tabbedPane.addTab(resourceMap.getString("jScrollPane1.TabConstraints.tabTitle"), jScrollPane1); // NOI18N
|
||||
|
||||
jScrollPane2.setName("jScrollPane2"); // NOI18N
|
||||
|
||||
|
@ -469,7 +473,7 @@ public class MainFrame extends FrameView {
|
|||
sessionsTable.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
||||
jScrollPane2.setViewportView(sessionsTable);
|
||||
|
||||
jTabbedPane1.addTab(resourceMap.getString("jScrollPane2.TabConstraints.tabTitle"), jScrollPane2); // NOI18N
|
||||
tabbedPane.addTab(resourceMap.getString("jScrollPane2.TabConstraints.tabTitle"), jScrollPane2); // NOI18N
|
||||
|
||||
jScrollPane3.setName("jScrollPane3"); // NOI18N
|
||||
|
||||
|
@ -505,7 +509,7 @@ public class MainFrame extends FrameView {
|
|||
hostsTable.getColumnModel().getColumn(11).setHeaderValue(resourceMap.getString("hostsTable.columnModel.title11")); // NOI18N
|
||||
hostsTable.getColumnModel().getColumn(12).setHeaderValue(resourceMap.getString("hostsTable.columnModel.title12")); // NOI18N
|
||||
|
||||
jTabbedPane1.addTab(resourceMap.getString("jScrollPane3.TabConstraints.tabTitle"), jScrollPane3); // NOI18N
|
||||
tabbedPane.addTab(resourceMap.getString("jScrollPane3.TabConstraints.tabTitle"), jScrollPane3); // NOI18N
|
||||
|
||||
jScrollPane4.setName("jScrollPane4"); // NOI18N
|
||||
|
||||
|
@ -528,7 +532,7 @@ public class MainFrame extends FrameView {
|
|||
servicesTable.setName("servicesTable"); // NOI18N
|
||||
jScrollPane4.setViewportView(servicesTable);
|
||||
|
||||
jTabbedPane1.addTab(resourceMap.getString("jScrollPane4.TabConstraints.tabTitle"), jScrollPane4); // NOI18N
|
||||
tabbedPane.addTab(resourceMap.getString("jScrollPane4.TabConstraints.tabTitle"), jScrollPane4); // NOI18N
|
||||
|
||||
jScrollPane5.setName("jScrollPane5"); // NOI18N
|
||||
|
||||
|
@ -551,7 +555,7 @@ public class MainFrame extends FrameView {
|
|||
vulnsTable.setName("vulnsTable"); // NOI18N
|
||||
jScrollPane5.setViewportView(vulnsTable);
|
||||
|
||||
jTabbedPane1.addTab(resourceMap.getString("jScrollPane5.TabConstraints.tabTitle"), jScrollPane5); // NOI18N
|
||||
tabbedPane.addTab(resourceMap.getString("jScrollPane5.TabConstraints.tabTitle"), jScrollPane5); // NOI18N
|
||||
|
||||
jScrollPane6.setName("jScrollPane6"); // NOI18N
|
||||
|
||||
|
@ -574,19 +578,19 @@ public class MainFrame extends FrameView {
|
|||
eventsTable.setName("eventsTable"); // NOI18N
|
||||
jScrollPane6.setViewportView(eventsTable);
|
||||
|
||||
jTabbedPane1.addTab(resourceMap.getString("jScrollPane6.TabConstraints.tabTitle"), jScrollPane6); // NOI18N
|
||||
tabbedPane.addTab(resourceMap.getString("jScrollPane6.TabConstraints.tabTitle"), jScrollPane6); // NOI18N
|
||||
|
||||
jTabbedPane1.setSelectedIndex(1);
|
||||
tabbedPane.setSelectedIndex(1);
|
||||
|
||||
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
|
||||
mainPanel.setLayout(mainPanelLayout);
|
||||
mainPanelLayout.setHorizontalGroup(
|
||||
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 882, Short.MAX_VALUE)
|
||||
.addComponent(tabbedPane, javax.swing.GroupLayout.DEFAULT_SIZE, 882, Short.MAX_VALUE)
|
||||
);
|
||||
mainPanelLayout.setVerticalGroup(
|
||||
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE)
|
||||
.addComponent(tabbedPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
menuBar.setName("menuBar"); // NOI18N
|
||||
|
@ -942,26 +946,14 @@ public class MainFrame extends FrameView {
|
|||
|
||||
/** Refreshes the database tables. */
|
||||
private void reloadDb() {
|
||||
try {
|
||||
Object[] hosts = (Object[]) ((Map)rpcConn.execute("db.hosts",new Object[]{new HashMap()})).get("hosts");
|
||||
reAdd(hostsTable,hosts,new String[]{"created_at","address","address6","mac","name","state","os_name",
|
||||
reAddQuery(hostsTable,2,"hosts",new String[]{"created_at","address","address6","mac","name","state","os_name",
|
||||
"os_flavor","os_sp","os_lang","updated_at","purpose","info"});
|
||||
} catch (MsfException mex) {
|
||||
}
|
||||
try {
|
||||
Object[] services = (Object[]) ((Map)rpcConn.execute("db.services",new Object[]{new HashMap()})).get("services");
|
||||
reAdd(servicesTable, services, new String[]{"host","created_at","updated_at","port","proto","state","name","info"});
|
||||
} catch (MsfException mex) {
|
||||
}
|
||||
try {
|
||||
Object[] vulns = (Object[]) ((Map)rpcConn.execute("db.vulns",new Object[]{new HashMap()})).get("vulns");
|
||||
reAdd(vulnsTable,vulns,new String[]{"port","proto","time","host","name","refs"});
|
||||
} catch (MsfException mex) {
|
||||
}
|
||||
reAddQuery(servicesTable, 3, "services", new String[]{"host","created_at","updated_at","port","proto","state","name","info"});
|
||||
reAddQuery(vulnsTable,4,"vulns",new String[]{"port","proto","time","host","name","refs"});
|
||||
try {
|
||||
Object wspace = ((Map) rpcConn.execute("db.current_workspace")).get("workspace");
|
||||
Object[] events = (Object[]) ((Map)rpcConn.execute("db.events",new Object[]{wspace})).get("events");
|
||||
reAdd(eventsTable,events,new String[]{"host","created_at","updated_at","name","critical","username","info"});
|
||||
reAdd(eventsTable,5,events,new String[]{"host","created_at","updated_at","name","critical","username","info"});
|
||||
} catch (MsfException mex) {
|
||||
}
|
||||
}
|
||||
|
@ -1253,7 +1245,6 @@ public class MainFrame extends FrameView {
|
|||
private javax.swing.JScrollPane jScrollPane5;
|
||||
private javax.swing.JScrollPane jScrollPane6;
|
||||
private javax.swing.JPopupMenu.Separator jSeparator1;
|
||||
private javax.swing.JTabbedPane jTabbedPane1;
|
||||
private javax.swing.JList jobsList;
|
||||
private javax.swing.JMenuItem killSessionsMenuItem;
|
||||
private javax.swing.JMenuItem logGenerateMenuItem;
|
||||
|
@ -1275,6 +1266,7 @@ public class MainFrame extends FrameView {
|
|||
private javax.swing.JLabel statusAnimationLabel;
|
||||
private javax.swing.JLabel statusMessageLabel;
|
||||
private javax.swing.JPanel statusPanel;
|
||||
private javax.swing.JTabbedPane tabbedPane;
|
||||
private javax.swing.JTable vulnsTable;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
private final Timer messageTimer;
|
||||
|
@ -1306,8 +1298,16 @@ public class MainFrame extends FrameView {
|
|||
}
|
||||
}
|
||||
|
||||
/** Clear a table's contents, and replace with contents of data */
|
||||
private void reAdd(JTable table, Object[] data, String[] cols) {
|
||||
/** Clear a table's contents, reenabling the tab, and replace with contents of data returned from a db call */
|
||||
private void reAddQuery(JTable table, int tabIndex, String call, String[] cols) {
|
||||
try {
|
||||
Object[] data = (Object[]) ((Map)rpcConn.execute("db."+call,new Object[]{new HashMap()})).get(call);
|
||||
reAdd(hostsTable,tabIndex, data,cols);
|
||||
} catch (MsfException mex) {
|
||||
}
|
||||
}
|
||||
/** Clear a table's contents, reenabling the tab, and replace with contents of data */
|
||||
private void reAdd(JTable table, int tabIndex, Object[] data, String[] cols) {
|
||||
DefaultTableModel mod = (DefaultTableModel) table.getModel();
|
||||
while (mod.getRowCount() > 0)
|
||||
mod.removeRow(0);
|
||||
|
@ -1318,6 +1318,7 @@ public class MainFrame extends FrameView {
|
|||
mod.addRow(row);
|
||||
}
|
||||
TableHelper.fitColumnWidths(mod, table);
|
||||
tabbedPane.setEnabledAt(tabIndex, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue