私は 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」メソッドを削除すると、アプリケーションは正しく機能しますが、これについては本当に理解できません。