Ich baue eine SWING-Anwendung und muss auch einen benutzerdefinierten SecurityManager schreiben. Wenn ich eine leere Klasse schreiben, die Security wie diesJava SecurityManager @Override öffentliche void checkPermission (Permission Permission)
public class Sandbox extends SecurityManager {}
Sinn erstreckt es funktioniert gut, dass die GUI korrekt wiedergegeben wird und alle Privilegien wie I/O widerrufen werden. Allerdings muss ich die checkPermission-Methode anpassen und wenn ich es überschreibe nichts mehr funktioniert ... Warum sollte so etwas nicht funktionieren?
public class Sandbox extends SecurityManager {
@Overide
public void checkPermission(Permission perm) {
super.checkPermission(perm);
}
}
Update: ein sehr einfaches Beispiel, das das Problem zeigt, ist dies
public static void main(String[] args) {
System.setSecurityManager(new SecurityManager() {
@Override
public void checkPermission(Permission p) {
if (some_condition_here) {
// Do something here
} else {
// Resort to default implementation
super.checkPermission(p);
}
}
});
new JFrame().setVisible(true);
}
die „check“ Methode Entfernen der Anwendung richtig funktioniert, aber ich kann wirklich nicht meinen Kopf bekommen diese um.
Für bessere Hilfe früher, post ein [SSCCE] (http://sscce.org/). –
Ich habe die Frage mit einem Beispiel aktualisiert – Flavio
Dies könnte auch interessant sein http://docs.oracle.com/javase/7/docs/technotes/guides/security/smPortGuide.html – mike