package gui;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import model.BurpCertificate;
import application.SamlTabController;
public class SamlPanelAction extends JPanel {
private static final long serialVersionUID = 1L;
private SamlTabController controller;
private JLabel lblMessage;
private JComboBox<BurpCertificate> cmbboxCertificate;
private JComboBox<String> cmbboxXSW;
private JButton btnXSWHelp;
private JButton btnXSWPreview;
private JButton btnSignatureReset;
private JButton btnXSWApply;
private JButton btnSignatureHelp;
private JButton btnSignatureRemove;
private JButton btnSignatureReplace;
private JButton btnSendCertificate;
private JButton btnSignatureAdd;
private JTextField txtSearch;
private JLabel lblSearch;
public SamlPanelAction() {
initialize();
}
public SamlPanelAction(SamlTabController controller) {
this.controller = controller;
initialize();
}
private void initialize() {
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[] { 0, 131, 0, 0, 0, 0, 0 };
gridBagLayout.rowHeights = new int[] { 14, 0, 0, 37, 0, 0, 0, 0, 0, 21, 0 };
gridBagLayout.columnWeights = new double[] { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
gridBagLayout.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
setLayout(gridBagLayout);
JLabel lblXSWTitle = new JLabel("XSW Attacks");
lblXSWTitle.setFont(new Font("Tahoma", Font.BOLD, 11));
GridBagConstraints gbc_lblXSWTitle = new GridBagConstraints();
gbc_lblXSWTitle.insets = new Insets(0, 0, 5, 5);
gbc_lblXSWTitle.anchor = GridBagConstraints.WEST;
gbc_lblXSWTitle.gridx = 1;
gbc_lblXSWTitle.gridy = 0;
add(lblXSWTitle, gbc_lblXSWTitle);
btnXSWHelp = new JButton("?");
GridBagConstraints gbc_btnXSWHelp = new GridBagConstraints();
gbc_btnXSWHelp.insets = new Insets(0, 0, 5, 5);
gbc_btnXSWHelp.gridx = 0;
gbc_btnXSWHelp.gridy = 1;
btnXSWHelp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.showXSWHelp();
}
});
add(btnXSWHelp, gbc_btnXSWHelp);
cmbboxXSW = new JComboBox<String>();
GridBagConstraints gbc_cmbboxXSW = new GridBagConstraints();
gbc_cmbboxXSW.insets = new Insets(0, 0, 5, 5);
gbc_cmbboxXSW.fill = GridBagConstraints.HORIZONTAL;
gbc_cmbboxXSW.gridx = 1;
gbc_cmbboxXSW.gridy = 1;
add(cmbboxXSW, gbc_cmbboxXSW);
btnXSWPreview = new JButton("Preview in Browser...");
GridBagConstraints gbc_btnXSWPreview = new GridBagConstraints();
gbc_btnXSWPreview.anchor = GridBagConstraints.WEST;
gbc_btnXSWPreview.insets = new Insets(0, 0, 5, 5);
gbc_btnXSWPreview.gridx = 3;
gbc_btnXSWPreview.gridy = 1;
btnXSWPreview.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.showXSWPreview();
}
});
add(btnXSWPreview, gbc_btnXSWPreview);
btnSignatureReset = new JButton("Reset Message");
GridBagConstraints gbc_btnSignatureReset = new GridBagConstraints();
gbc_btnSignatureReset.anchor = GridBagConstraints.EAST;
gbc_btnSignatureReset.insets = new Insets(0, 0, 5, 5);
gbc_btnSignatureReset.gridx = 4;
gbc_btnSignatureReset.gridy = 1;
add(btnSignatureReset, gbc_btnSignatureReset);
btnSignatureReset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.resetMessage();
}
});
btnXSWApply = new JButton("Apply XSW");
GridBagConstraints gbc_btnXSWApply = new GridBagConstraints();
gbc_btnXSWApply.insets = new Insets(0, 0, 5, 5);
gbc_btnXSWApply.anchor = GridBagConstraints.SOUTHWEST;
gbc_btnXSWApply.gridx = 3;
gbc_btnXSWApply.gridy = 2;
btnXSWApply.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.applyXSW();
}
});
add(btnXSWApply, gbc_btnXSWApply);
JLabel lblSignatureTitle = new JLabel("XML Signature");
lblSignatureTitle.setFont(new Font("Tahoma", Font.BOLD, 11));
GridBagConstraints gbc_lblSignatureTitle = new GridBagConstraints();
gbc_lblSignatureTitle.anchor = GridBagConstraints.WEST;
gbc_lblSignatureTitle.insets = new Insets(0, 0, 5, 5);
gbc_lblSignatureTitle.gridx = 1;
gbc_lblSignatureTitle.gridy = 4;
add(lblSignatureTitle, gbc_lblSignatureTitle);
btnSignatureHelp = new JButton("?");
GridBagConstraints gbc_btnSignatureHelp = new GridBagConstraints();
gbc_btnSignatureHelp.insets = new Insets(0, 0, 5, 5);
gbc_btnSignatureHelp.gridx = 0;
gbc_btnSignatureHelp.gridy = 5;
btnSignatureHelp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.showSignatureHelp();
}
});
add(btnSignatureHelp, gbc_btnSignatureHelp);
cmbboxCertificate = new JComboBox<BurpCertificate>();
GridBagConstraints gbc_cmbboxCertificate = new GridBagConstraints();
gbc_cmbboxCertificate.insets = new Insets(0, 0, 5, 5);
gbc_cmbboxCertificate.fill = GridBagConstraints.HORIZONTAL;
gbc_cmbboxCertificate.gridx = 1;
gbc_cmbboxCertificate.gridy = 5;
add(cmbboxCertificate, gbc_cmbboxCertificate);
btnSignatureRemove = new JButton("Remove Signatures");
btnSignatureRemove.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.removeSignature();
}
});
GridBagConstraints gbc_btnSignatureRemove = new GridBagConstraints();
gbc_btnSignatureRemove.fill = GridBagConstraints.HORIZONTAL;
gbc_btnSignatureRemove.insets = new Insets(0, 0, 5, 5);
gbc_btnSignatureRemove.gridx = 3;
gbc_btnSignatureRemove.gridy = 5;
add(btnSignatureRemove, gbc_btnSignatureRemove);
btnSignatureReplace = new JButton("(Re-)Sign Assertion");
btnSignatureReplace.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.resignAssertion();
}
});
GridBagConstraints gbc_btnSignatureReplace = new GridBagConstraints();
gbc_btnSignatureReplace.fill = GridBagConstraints.HORIZONTAL;
gbc_btnSignatureReplace.insets = new Insets(0, 0, 5, 5);
gbc_btnSignatureReplace.gridx = 4;
gbc_btnSignatureReplace.gridy = 5;
add(btnSignatureReplace, gbc_btnSignatureReplace);
btnSendCertificate = new JButton("<html>Send Certificate to<br/> SAML Raider Certs");
GridBagConstraints gbc_btnSendCertificate = new GridBagConstraints();
gbc_btnSendCertificate.fill = GridBagConstraints.HORIZONTAL;
gbc_btnSendCertificate.insets = new Insets(0, 0, 5, 5);
gbc_btnSendCertificate.gridx = 3;
gbc_btnSendCertificate.gridy = 6;
btnSendCertificate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.sendToCertificatesTab();
}
});
add(btnSendCertificate, gbc_btnSendCertificate);
btnSignatureAdd = new JButton("(Re-)Sign Message");
GridBagConstraints gbc_btnSignatureAdd = new GridBagConstraints();
gbc_btnSignatureAdd.fill = GridBagConstraints.HORIZONTAL;
btnSignatureAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
controller.resignMessage();
}
});
gbc_btnSignatureAdd.insets = new Insets(0, 0, 5, 5);
gbc_btnSignatureAdd.gridx = 4;
gbc_btnSignatureAdd.gridy = 6;
add(btnSignatureAdd, gbc_btnSignatureAdd);
lblSearch = new JLabel("Search");
lblSearch.setFont(new Font("Tahoma", Font.BOLD, 11));
GridBagConstraints gbc_lblSearch = new GridBagConstraints();
gbc_lblSearch.insets = new Insets(0, 0, 5, 5);
gbc_lblSearch.anchor = GridBagConstraints.EAST;
gbc_lblSearch.gridx = 3;
gbc_lblSearch.gridy = 8;
add(lblSearch, gbc_lblSearch);
txtSearch = new JTextField();
txtSearch.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
controller.searchInTextarea();
}
}
});
txtSearch.getDocument().addDocumentListener(new DocumentListener() {
public void removeUpdate(DocumentEvent e) {
controller.searchInTextarea();
}
public void insertUpdate(DocumentEvent e) {}
public void changedUpdate(DocumentEvent e) {}
});
GridBagConstraints gbc_txtSearch = new GridBagConstraints();
gbc_txtSearch.insets = new Insets(0, 0, 5, 0);
gbc_txtSearch.fill = GridBagConstraints.HORIZONTAL;
gbc_txtSearch.gridx = 4;
gbc_txtSearch.gridy = 8;
add(txtSearch, gbc_txtSearch);
txtSearch.setColumns(10);
lblMessage = new JLabel("");
lblMessage.setBackground(new Color(255, 250, 205));
lblMessage.setForeground(new Color(255, 140, 0));
GridBagConstraints gbc_lblMessage = new GridBagConstraints();
gbc_lblMessage.anchor = GridBagConstraints.WEST;
gbc_lblMessage.gridwidth = 4;
gbc_lblMessage.insets = new Insets(0, 0, 0, 5);
gbc_lblMessage.gridx = 1;
gbc_lblMessage.gridy = 9;
add(lblMessage, gbc_lblMessage);
}
public JLabel getInfoMessageLabel() {
return lblMessage;
}
public void setCertificateList(List<BurpCertificate> list) {
DefaultComboBoxModel<BurpCertificate> model = new DefaultComboBoxModel<BurpCertificate>();
for (BurpCertificate cert : list) {
model.addElement(cert);
}
cmbboxCertificate.setModel(model);
}
public BurpCertificate getSelectedCertificate() {
return (BurpCertificate) cmbboxCertificate.getSelectedItem();
}
public void setXSWList(String[] xswTypes) {
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>(xswTypes);
cmbboxXSW.setModel(model);
}
public String getSelectedXSW() {
return (String) cmbboxXSW.getSelectedItem();
}
public String getSearchText(){
return txtSearch.getText();
}
public void disableControls() {
cmbboxCertificate.setEnabled(false);
cmbboxXSW.setEnabled(false);
btnXSWHelp.setEnabled(false);
btnXSWPreview.setEnabled(false);
btnSignatureReset.setEnabled(false);
btnXSWApply.setEnabled(false);
btnSignatureHelp.setEnabled(false);
btnSignatureRemove.setEnabled(false);
btnSignatureReplace.setEnabled(false);
btnSendCertificate.setEnabled(false);
btnSignatureAdd.setEnabled(false);
this.revalidate();
}
public void enableControls() {
cmbboxCertificate.setEnabled(true);
cmbboxXSW.setEnabled(true);
btnXSWHelp.setEnabled(true);
btnXSWPreview.setEnabled(true);
btnSignatureReset.setEnabled(true);
btnXSWApply.setEnabled(true);
btnSignatureHelp.setEnabled(true);
btnSignatureRemove.setEnabled(true);
btnSignatureReplace.setEnabled(true);
btnSendCertificate.setEnabled(true);
btnSignatureAdd.setEnabled(true);
this.revalidate();
}
}