我正在构建一个SWING应用程序,还需要编写自定义的SecurityManager。如果我编写一个继承SecurityManager的空类,如下所示:
更新:一个非常基础的示例,展示了这个问题。
public class Sandbox extends SecurityManager {}
它正常工作,意味着GUI呈现正确,并且所有特权(如I/O)都被撤销。 然而,我需要自定义checkPermission方法,但每当我覆盖它时,什么都不起作用了... 为什么即使像这样的东西也不能工作?
public class Sandbox extends SecurityManager {
@Overide
public void checkPermission(Permission perm) {
super.checkPermission(perm);
}
}
更新:一个非常基础的示例,展示了这个问题。
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);
}
移除“checkPermission”方法后,应用程序可以正常工作,但我真的无法理解这个。