package gui; import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.ScrollPaneConstants; import javax.swing.border.EmptyBorder; public class XSWHelpWindow extends JFrame { private static final long serialVersionUID = 1L; private JPanel contentPane; public XSWHelpWindow() { setTitle("XML Signature Wrapping Help"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 600, 400); setMinimumSize(new Dimension(600, 400)); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BorderLayout(0, 0)); JLabel lblBeschreibung = new JLabel("<html>With xml wrapping attacks you try to trick the xml signature validator into validating an " + "signature of an element while evaluating an other element. The XSWs in the image are supported." + "<br/>The blue element represents the signature." + "<br/>The green one represents the original element, which is correctly signed. " + "<br/>The red one represents the falsly evaluated element, if the validating is not correctly implemented." + "<br/>Mind that the first two XSWs can be used for signed responses only whereas the other ones can be used for signed assertions only." + "<br/> These XSW are taken from this paper: <br/> Somorovsky, Juraj, et al. \"On Breaking SAML: Be Whoever You Want to Be.\" USENIX Security Symposium. 2012." + "<br/> Please check out this paper for further information." + "</html>"); contentPane.add(lblBeschreibung, BorderLayout.NORTH); JScrollPane scrollPane = new JScrollPane(); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); contentPane.add(scrollPane, BorderLayout.CENTER); ImagePanel panel; String className = getClass().getName().replace('.', '/'); String classJar = getClass().getResource("/" + className + ".class").toString(); if (classJar.startsWith("jar:")) { panel = new ImagePanel("xswlist.png"); } else { panel = new ImagePanel("src/main/resources/xswlist.png"); } scrollPane.setViewportView(panel); } }