Bonjour,
j'ai pour la mise en place de sécurité dans mon application. Pour le moment, je veux faire des essais mais par la suite j'aimerai interdire l'ouverture de socket, a un plugins de mon application de faire un System.exit(x)...
Pour le moment j'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class Test { public static void main(String[] args) { System.setSecurityManager(new SecurityManager()); JFrame frame = new PermissionJFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } class PermissionJFrame extends JFrame { private JTextField field; private WorkCheckTextArea textArea; public PermissionJFrame() { setTitle("PermissionTest"); setSize(500, 300); field = new JTextField(20); textArea = new WorkCheckTextArea(); JPanel panel = new JPanel(); JButton openButton = new JButton("Insérer"); panel.add(field); panel.add(openButton); openButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub insertWords(field.getText()); } }); add(panel, BorderLayout.NORTH); add(new JScrollPane(textArea), BorderLayout.CENTER); } public void insertWords(String word) { try { textArea.append(word + "\n"); } catch (Exception e) { e.printStackTrace(); } } } class WorkCheckTextArea extends JTextArea { public void append(String text) { WorkCheckPermission p = new WorkCheckPermission(text, "insert"); SecurityManager manager = System.getSecurityManager(); if (manager != null) { manager.checkPermission(p); } super.append(text); } }malhreusement j'ai le code suivant me déclenche l'exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 import java.security.BasicPermission; import java.security.Permission; public class WorkCheckPermission extends BasicPermission { private String action ; public WorkCheckPermission(String target,String action) { super(target); this.action = action ; } @Override public boolean equals(Object obj) { return false; } @Override public String getActions() { return ""; } @Override public int hashCode() { // TODO Auto-generated method stub return getName().hashCode(); } @Override public boolean implies(Permission permission) { return true; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 java.security.AccessControlException: access denied (WorkCheckPermission sqdqs ) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at WorkCheckTextArea.append(Test.java:68) at PermissionJFrame.insertWords(Test.java:55) at PermissionJFrame$1.actionPerformed(Test.java:45) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Partager