非常に制限の厳しいセキュリティマネージャーを作成したかったので、SecurityManagerを拡張し、すべてのカスタムcheckXXXメソッドをオーバーライドしました。
しかし、その後、セキュリティマネージャが役に立たないことがわかりました。なぜなら、誰でも次のことができるからです。
System.setSecurityManager(null);
だから私は追加する必要があります:
@Override public void checkPermission(Permission perm) {
if (perm.getName().equals("setSecurityManager")) {
throw new SecurityException("You shall have no other security manager but me!");
}
}
これ以上の驚きはありますか?SecurityManagerを気密にするために他にやらなければならないことはありますか?