I am writing a Burp extension that copies requests / responses to the clipboard. When selecting request / responses from Burp Proxy, the extension works great. However, in Burp Logger, the context menu does not even appear.
Here is some Kotlin code with my ContextMenuItemsProvider:
api.userInterface().registerContextMenuItemsProvider(object : ContextMenuItemsProvider {
override fun provideMenuItems(event: ContextMenuEvent?): List<Component?> {
val selectedReqResp = event?.selectedRequestResponses()
val msgEditorReqResp = event?.messageEditorRequestResponse()
val actualReqResp = if (msgEditorReqResp?.isPresent == true) {
listOf(msgEditorReqResp.get().requestResponse())
} else {
selectedReqResp ?: listOf()
}
if (actualReqResp.isEmpty())
return emptyList()
val reqRespJMenuItem = JMenuItem("Copy Request / Response Pair")
reqRespJMenuItem.addActionListener {
/* Get system clipboard */
val htmlSelection = RequestResponseClipboardData(actualReqResp)
val clipboard: Clipboard = Toolkit.getDefaultToolkit().systemClipboard
clipboard.setContents(htmlSelection, null)
}
return listOf(reqRespJMenuItem)
}
})
Here's a screenshot of the extension working normally, in the proxy tab:
But in the logger tab, no context menu actions exist for any extension:
Hello,
I am writing a Burp extension that copies requests / responses to the clipboard. When selecting request / responses from Burp Proxy, the extension works great. However, in Burp Logger, the context menu does not even appear.
Here is some Kotlin code with my
ContextMenuItemsProvider
:Here's a screenshot of the extension working normally, in the proxy tab:![Screenshot 2023-08-22 at 9 48 54 AM](https://github.com/PortSwigger/burp-extensions-montoya-api/assets/123767768/d8fdf38e-f294-4f49-95da-917eb6e6b5f8)
But in the logger tab, no context menu actions exist for any extension:![Screenshot 2023-08-22 at 9 50 18 AM](https://github.com/PortSwigger/burp-extensions-montoya-api/assets/123767768/cd73eb97-d377-4d6b-8789-f05a813806cb)