/* * CredentialManagerFrame.java * * Created on 04 January 2006, 12:31 */ package org.owasp.webscarab.ui.swing; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import javax.swing.table.AbstractTableModel; import org.owasp.webscarab.model.Preferences; import org.owasp.webscarab.plugin.BasicCredential; import org.owasp.webscarab.plugin.CredentialManager; import org.owasp.webscarab.plugin.DomainCredential; /** * * @author rdawes */ public class CredentialManagerFrame extends javax.swing.JFrame { /** * */ private static final long serialVersionUID = 1688116674185863060L; private CredentialManager _manager; private BasicTableModel _btm; private DomainTableModel _dtm; /** Creates new form CredentialManagerFrame */ public CredentialManagerFrame(CredentialManager manager) { initComponents(); boolean prompt = Boolean.valueOf(Preferences.getPreference("WebScarab.promptForCredentials", "false")).booleanValue(); promptCheckBox.setSelected(prompt); addComponentListener(new Updater()); _manager = manager; _btm = new BasicTableModel(); _dtm = new DomainTableModel(); basicTable.setModel(_btm); domainTable.setModel(_dtm); } private void updateCredentials() { _btm.fireTableDataChanged(); _dtm.fireTableDataChanged(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; jLabel1 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); basicTable = new javax.swing.JTable(); jLabel2 = new javax.swing.JLabel(); jScrollPane2 = new javax.swing.JScrollPane(); domainTable = new javax.swing.JTable(); jPanel1 = new javax.swing.JPanel(); addButton = new javax.swing.JButton(); deleteButton = new javax.swing.JButton(); clearButton = new javax.swing.JButton(); closeButton = new javax.swing.JButton(); promptCheckBox = new javax.swing.JCheckBox(); getContentPane().setLayout(new java.awt.GridBagLayout()); setTitle("WebScarab Credentials"); jLabel1.setText("Basic Credentials"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; getContentPane().add(jLabel1, gridBagConstraints); basicTable.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } )); jScrollPane1.setViewportView(basicTable); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; getContentPane().add(jScrollPane1, gridBagConstraints); jLabel2.setText("Domain Credentials"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; getContentPane().add(jLabel2, gridBagConstraints); domainTable.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } )); jScrollPane2.setViewportView(domainTable); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; getContentPane().add(jScrollPane2, gridBagConstraints); addButton.setText("Add"); addButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addButtonActionPerformed(evt); } }); jPanel1.add(addButton); deleteButton.setText("Delete"); deleteButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteButtonActionPerformed(evt); } }); jPanel1.add(deleteButton); clearButton.setText("Clear all"); clearButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clearButtonActionPerformed(evt); } }); jPanel1.add(clearButton); closeButton.setText("Close"); closeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { closeButtonActionPerformed(evt); } }); jPanel1.add(closeButton); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; getContentPane().add(jPanel1, gridBagConstraints); promptCheckBox.setText("Ask when required"); promptCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); promptCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0)); promptCheckBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { promptCheckBoxActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); getContentPane().add(promptCheckBox, gridBagConstraints); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-400)/2, (screenSize.height-300)/2, 400, 300); }// </editor-fold>//GEN-END:initComponents private void promptCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_promptCheckBoxActionPerformed Preferences.setPreference("WebScarab.promptForCredentials", Boolean.toString(promptCheckBox.isSelected())); }//GEN-LAST:event_promptCheckBoxActionPerformed private void clearButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearButtonActionPerformed for (int i=_manager.getBasicCredentialCount()-1; i>=0; i--) { _manager.deleteBasicCredentialAt(i); } for (int i=_manager.getDomainCredentialCount()-1; i>=0; i--) { _manager.deleteDomainCredentialAt(i); } updateCredentials(); }//GEN-LAST:event_clearButtonActionPerformed private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed setVisible(false); }//GEN-LAST:event_closeButtonActionPerformed private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteButtonActionPerformed int basicSelection = basicTable.getSelectedRow(); int domainSelection = domainTable.getSelectedRow(); if (basicSelection > -1 && domainSelection > -1) return; if (basicSelection > -1) _manager.deleteBasicCredentialAt(basicSelection); if (domainSelection> -1) _manager.deleteDomainCredentialAt(domainSelection); updateCredentials(); }//GEN-LAST:event_deleteButtonActionPerformed private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed new CredentialRequestDialog(this, true, _manager).requestCredentials(null, null); updateCredentials(); }//GEN-LAST:event_addButtonActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton addButton; private javax.swing.JTable basicTable; private javax.swing.JButton clearButton; private javax.swing.JButton closeButton; private javax.swing.JButton deleteButton; private javax.swing.JTable domainTable; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JCheckBox promptCheckBox; // End of variables declaration//GEN-END:variables private class BasicTableModel extends AbstractTableModel { /** * */ private static final long serialVersionUID = 4101228666708000944L; private String[] _columnNames = { "Host", "Realm", "Username"}; public String getColumnName(int column) { return _columnNames[column]; } public int getColumnCount() { return 3; } public int getRowCount() { return _manager.getBasicCredentialCount(); } public Object getValueAt(int row, int column) { BasicCredential bc = _manager.getBasicCredentialAt(row); switch (column) { case 0: return bc.getHost(); case 1: return bc.getRealm(); case 2: return bc.getUsername(); } return null; } } private class DomainTableModel extends AbstractTableModel { /** * */ private static final long serialVersionUID = -4483058953578321230L; private String[] _columnNames = { "Host", "Domain", "Username"}; public String getColumnName(int column) { return _columnNames[column]; } public int getColumnCount() { return 3; } public int getRowCount() { return _manager.getDomainCredentialCount(); } public Object getValueAt(int row, int column) { DomainCredential dc = _manager.getDomainCredentialAt(row); switch (column) { case 0: return dc.getHost(); case 1: return dc.getDomain(); case 2: return dc.getUsername(); } return null; } } private class Updater extends ComponentAdapter { public void componentShown(ComponentEvent e) { updateCredentials(); } } }