Sto costruendo un'applicazione SWING e anche bisogno di scrivere un personalizzato SecurityManager. Se scrivo una classe vuota che si estende SecurityManager come questoJava SecurityManager @Override public void checkPermission (Permission perm)
public class Sandbox extends SecurityManager {}
funziona bene, il che significa che l'interfaccia grafica è resa in modo corretto e tutti i privilegi come I/O sono revocato. Tuttavia ho bisogno di personalizzare il metodo checkPermission e ogni volta che l'override che niente funziona più ... Perché anche qualcosa come questo non dovrebbe funzionare ??
public class Sandbox extends SecurityManager {
@Overide
public void checkPermission(Permission perm) {
super.checkPermission(perm);
}
}
Update: un esempio molto semplice che mostra il problema è questo
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);
}
Rimozione del metodo di "checkPermission" l'applicazione funziona correttamente, ma davvero non può ottenere la mia testa intorno a questo.
Per un aiuto migliore, pubblicare un [SSCCE] (http://sscce.org/). –
Ho aggiornato la domanda con un esempio – Flavio
Questo potrebbe essere anche interessante http://docs.oracle.com/javase/7/docs/technotes/guides/security/smPortGuide.html – mike