Search in sources :

Example 1 with Vulnerability

use of org.zaproxy.zap.model.Vulnerability in project zaproxy by zaproxy.

the class AlertViewPanel method getAlertDisplay.

private JPanel getAlertDisplay() {
    if (alertDisplay == null) {
        alertDisplay = new JXPanel();
        alertDisplay.setLayout(new GridBagLayout());
        alertDisplay.setScrollableHeightHint(ScrollableSizeHint.NONE);
        alertDisplay.setName("alertDisplay");
        // Create the labels
        alertEditName = new JComboBox<>();
        alertEditName.setEditable(true);
        nameListModel = new DefaultComboBoxModel<>();
        List<String> allVulns = getAllVulnerabilityNames();
        // Default to blank
        nameListModel.addElement("");
        for (String vuln : allVulns) {
            nameListModel.addElement(vuln);
        }
        alertEditName.setModel(nameListModel);
        alertEditName.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if ("comboBoxChanged".equals(e.getActionCommand())) {
                    Vulnerability v = getVulnerability((String) alertEditName.getSelectedItem());
                    if (v != null) {
                        if (v.getDescription() != null && v.getDescription().length() > 0) {
                            setAlertDescription(v.getDescription());
                        }
                        if (v.getSolution() != null && v.getSolution().length() > 0) {
                            setAlertSolution(v.getSolution());
                        }
                        if (v.getReferences() != null) {
                            StringBuilder sb = new StringBuilder();
                            for (String ref : v.getReferences()) {
                                sb.append(ref);
                                sb.append('\n');
                            }
                            setAlertReference(sb.toString());
                        }
                        alertEditWascId.setValue(v.getWascId());
                    }
                }
            }
        });
        alertEditRisk = new JComboBox<>(Alert.MSG_RISK);
        alertEditConfidence = new JComboBox<>(Alert.MSG_CONFIDENCE);
        alertEditConfidence.setSelectedItem(Alert.MSG_CONFIDENCE[Alert.CONFIDENCE_MEDIUM]);
        alertEditAttack = new ZapTextField();
        paramListModel = new DefaultComboBoxModel<>();
        // Default is empty so user can type anything in
        paramListModel.addElement("");
        alertEditParam = new JComboBox<>();
        alertEditParam.setModel(paramListModel);
        alertEditParam.setEditable(true);
        alertEditEvidence = new ZapTextField();
        alertEditCweId = new ZapNumberSpinner();
        if (alertEditCweId.getEditor() instanceof JSpinner.DefaultEditor) {
            ((JSpinner.DefaultEditor) alertEditCweId.getEditor()).getTextField().setHorizontalAlignment(JTextField.LEFT);
        }
        alertEditWascId = new ZapNumberSpinner();
        if (alertEditWascId.getEditor() instanceof JSpinner.DefaultEditor) {
            ((JSpinner.DefaultEditor) alertEditWascId.getEditor()).getTextField().setHorizontalAlignment(JTextField.LEFT);
        }
        // Read only ones
        alertName = new ZapLabel();
        alertName.setFont(FontUtils.getFont(Font.BOLD));
        alertName.setLineWrap(true);
        alertRisk = new JLabel();
        alertConfidence = new JLabel();
        alertParam = new ZapLabel();
        alertParam.setLineWrap(true);
        alertAttack = new ZapLabel();
        alertAttack.setLineWrap(true);
        alertEvidence = new ZapLabel();
        alertEvidence.setLineWrap(true);
        alertCweId = new ZapLabel();
        alertWascId = new ZapLabel();
        alertSource = new ZapLabel();
        alertSource.setLineWrap(true);
        alertUrl = new ZapLabel();
        alertUrl.setLineWrap(true);
        alertDescription = createZapTextArea();
        JScrollPane descSp = createJScrollPane(Constant.messages.getString("alert.label.desc"));
        descSp.setViewportView(alertDescription);
        alertDescription.addKeyListener(new KeyAdapter() {

            // Change tab key to transfer focus to the next element
            @Override
            public void keyPressed(java.awt.event.KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_TAB) {
                    alertDescription.transferFocus();
                }
            }
        });
        alertOtherInfo = createZapTextArea();
        JScrollPane otherSp = createJScrollPane(Constant.messages.getString("alert.label.other"));
        otherSp.setViewportView(alertOtherInfo);
        alertOtherInfo.addKeyListener(new KeyAdapter() {

            // Change tab key to transfer focus to the next element
            @Override
            public void keyPressed(java.awt.event.KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_TAB) {
                    alertOtherInfo.transferFocus();
                }
            }
        });
        alertSolution = createZapTextArea();
        JScrollPane solutionSp = createJScrollPane(Constant.messages.getString("alert.label.solution"));
        solutionSp.setViewportView(alertSolution);
        alertSolution.addKeyListener(new KeyAdapter() {

            // Change tab key to transfer focus to the next element
            @Override
            public void keyPressed(java.awt.event.KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_TAB) {
                    alertSolution.transferFocus();
                }
            }
        });
        alertReference = createZapTextArea();
        JScrollPane referenceSp = createJScrollPane(Constant.messages.getString("alert.label.ref"));
        referenceSp.setViewportView(alertReference);
        alertReference.addKeyListener(new KeyAdapter() {

            // Change tab key to transfer focus to the next element
            @Override
            public void keyPressed(java.awt.event.KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_TAB) {
                    alertReference.transferFocus();
                }
            }
        });
        int gbcRow = 0;
        alertDisplay.add(editable ? alertEditName : alertName, LayoutHelper.getGBC(0, gbcRow, 2, 0, DEFAULT_INSETS));
        // Show a blank label instead of the edit button if already editing
        gbcRow++;
        alertDisplay.add(getUrlLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
        alertDisplay.add(alertUrl, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(getRiskLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
        alertDisplay.add(editable ? alertEditRisk : alertRisk, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(getConfidenceLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
        alertDisplay.add(editable ? alertEditConfidence : alertConfidence, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(getParameterLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
        alertDisplay.add(editable ? alertEditParam : alertParam, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(getAttackLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
        alertDisplay.add(editable ? alertEditAttack : alertAttack, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(getEvidenceLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
        alertDisplay.add(editable ? alertEditEvidence : alertEvidence, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(getCweidLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
        alertDisplay.add(editable ? alertEditCweId : alertCweId, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(getWascidLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
        alertDisplay.add(editable ? alertEditWascId : alertWascId, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
        gbcRow++;
        if (!editable) {
            alertDisplay.add(getSourceLabel(), LayoutHelper.getGBC(0, gbcRow, 1, 0, DEFAULT_INSETS));
            alertDisplay.add(alertSource, LayoutHelper.getGBC(1, gbcRow, 1, 1, DEFAULT_INSETS));
            gbcRow++;
        }
        alertDisplay.add(descSp, LayoutHelper.getGBC(0, gbcRow, 2, 1.0D, 1.0D, GridBagConstraints.BOTH, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(otherSp, LayoutHelper.getGBC(0, gbcRow, 2, 1.0D, 1.0D, GridBagConstraints.BOTH, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(solutionSp, LayoutHelper.getGBC(0, gbcRow, 2, 1.0D, 1.0D, GridBagConstraints.BOTH, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(referenceSp, LayoutHelper.getGBC(0, gbcRow, 2, 1.0D, 1.0D, GridBagConstraints.BOTH, DEFAULT_INSETS));
        gbcRow++;
        alertDisplay.add(createAlertTagsPanel(), LayoutHelper.getGBC(0, gbcRow, 2, 1.0D, 1.0D, GridBagConstraints.BOTH, DEFAULT_INSETS));
    }
    return alertDisplay;
}
Also used : JScrollPane(javax.swing.JScrollPane) GridBagLayout(java.awt.GridBagLayout) ActionEvent(java.awt.event.ActionEvent) KeyAdapter(java.awt.event.KeyAdapter) JLabel(javax.swing.JLabel) Vulnerability(org.zaproxy.zap.model.Vulnerability) ZapLabel(org.zaproxy.zap.utils.ZapLabel) KeyEvent(java.awt.event.KeyEvent) ScrollableSizeHint(org.jdesktop.swingx.ScrollableSizeHint) ActionListener(java.awt.event.ActionListener) ZapNumberSpinner(org.zaproxy.zap.utils.ZapNumberSpinner) ZapTextField(org.zaproxy.zap.utils.ZapTextField) JSpinner(javax.swing.JSpinner) JXPanel(org.jdesktop.swingx.JXPanel)

Example 2 with Vulnerability

use of org.zaproxy.zap.model.Vulnerability in project zaproxy by zaproxy.

the class AlertViewPanel method getAllVulnerabilityNames.

private List<String> getAllVulnerabilityNames() {
    List<Vulnerability> vulns = this.getAllVulnerabilities();
    List<String> names = new ArrayList<>(vulns.size());
    for (Vulnerability v : vulns) {
        names.add(v.getAlert());
    }
    Collections.sort(names);
    return names;
}
Also used : ArrayList(java.util.ArrayList) Vulnerability(org.zaproxy.zap.model.Vulnerability)

Aggregations

Vulnerability (org.zaproxy.zap.model.Vulnerability)2 GridBagLayout (java.awt.GridBagLayout)1 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 KeyAdapter (java.awt.event.KeyAdapter)1 KeyEvent (java.awt.event.KeyEvent)1 ArrayList (java.util.ArrayList)1 JLabel (javax.swing.JLabel)1 JScrollPane (javax.swing.JScrollPane)1 JSpinner (javax.swing.JSpinner)1 JXPanel (org.jdesktop.swingx.JXPanel)1 ScrollableSizeHint (org.jdesktop.swingx.ScrollableSizeHint)1 ZapLabel (org.zaproxy.zap.utils.ZapLabel)1 ZapNumberSpinner (org.zaproxy.zap.utils.ZapNumberSpinner)1 ZapTextField (org.zaproxy.zap.utils.ZapTextField)1