Buduję aplikację SWING, a także muszę napisać niestandardowy program SecurityManager. Jeśli piszę pustą klasę, która rozciąga securityManager jak tenJava SecurityManager @Override public void checkPermission (Permission perm)
public class Sandbox extends SecurityManager {}
to działa dobrze, co oznacza, że GUI jest renderowany prawidłowo i wszystkie przywileje, takie jak I/O są odwołane. Jednak muszę dostosować metodę checkPermission i ilekroć nadpisuję to nic już nie działa ... Dlaczego coś takiego nie powinno działać?
public class Sandbox extends SecurityManager {
@Overide
public void checkPermission(Permission perm) {
super.checkPermission(perm);
}
}
Update: bardzo prosty przykład, który pokazuje problem jest ten
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);
}
Zdejmowanie „checkPermission” metody Aplikacja działa poprawnie, ale naprawdę nie mogę uzyskać moja głowa wokół tego.
Aby uzyskać lepszą pomoc wcześniej, opublikuj [SSCCE] (http://sscce.org/). –
Mam zaktualizowane pytanie z przykładem – Flavio
Może to być również interesujące http://docs.oracle.com/javase/7/docs/technotes/guides/security/smPortGuide.html – mike