I am trying to divide the window of a newly created Burp tab into different sections;
|-------|--|
| | |
|-------| |
|-------|--|
But I only see the left part. How is that possible and what should I do differently?
public class BurpExtender extends AbstractTableModel implements IBurpExtender, ITab, IHttpListener, IMessageEditorController
{
private IBurpExtenderCallbacks callbacks;
private IExtensionHelpers helpers;
private JSplitPane splitPane;
private JSplitPane splitPane2;
private IMessageEditor requestViewer;
private IMessageEditor responseViewer;
private final List<LogEntry> log = new ArrayList<LogEntry>();
private IHttpRequestResponse currentlyDisplayedItem;
//
// implement IBurpExtender
//
@Override
public void registerExtenderCallbacks(final IBurpExtenderCallbacks callbacks)
{
// keep a reference to our callbacks object
this.callbacks = callbacks;
// obtain an extension helpers object
helpers = callbacks.getHelpers();
// set our extension name
callbacks.setExtensionName("Logger");
// create our UI
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
splitPane2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
splitPane2.setDividerLocation(0.5);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
// main split pane
splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
// table of log entries
Table logTable = new Table(BurpExtender.this);
JScrollPane scrollPane = new JScrollPane(logTable);
splitPane.setLeftComponent(scrollPane);
// tabs with request/response viewers
JTabbedPane tabs = new JTabbedPane();
requestViewer = callbacks.createMessageEditor(BurpExtender.this, false);
responseViewer = callbacks.createMessageEditor(BurpExtender.this, false);
tabs.addTab("Request", requestViewer.getComponent());
tabs.addTab("Response", responseViewer.getComponent());
splitPane.setRightComponent(tabs);
splitPane2.setLeftComponent(splitPane);
splitPane2.setRightComponent(panel);
// customize our UI components
callbacks.customizeUiComponent(splitPane);
callbacks.customizeUiComponent(panel);
callbacks.customizeUiComponent(splitPane2);
callbacks.customizeUiComponent(logTable);
callbacks.customizeUiComponent(scrollPane);
callbacks.customizeUiComponent(tabs);
// add the custom tab to Burp's UI
callbacks.addSuiteTab(BurpExtender.this);
// register ourselves as an HTTP listener
callbacks.registerHttpListener(BurpExtender.this);
}
});
}
My ultimate goal is to create an export button in the right part (by using a JPanel first I assume). The language I use is Java. Currenlty, I am using IHttpListener but maybe I will implement IScannerCheck for populating the TableModel with results from a passive scan.
Edit (after more than 8 hours of trying to get it work based on examples on the internet):
public Component getUiComponent()
{
return splitPane;
}
I changed splitPane to splitPane2, now it appears to be working. If anyone has suggestions why this is needed or other suggestions (like implementing a button or faulty assumptions/code from my side), I would like to hear.
question from:
https://stackoverflow.com/questions/65843587/nested-split-pane-in-java-for-burp-extension 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…