JSR-223 をサンドボックス化しようとしています。具体的には、どのスクリプトも自分のクラスにアクセスできないようにしたいと考えています。(Rhino は ClassShutter でそれを行うことができると聞きましたが、私は一般的に、つまり JSR-223 のすべてのスクリプト エンジンに対してそれを行いたいと考えています)。
私は最初に、アクセス許可をまったく渡さずAccessController.doPrivileged
に、ソリューションを使用しようとしました。ほとんどのパーミッションで機能しますが、スクリプトは引き続きすべてのパブリック クラスにアクセスできます (「パッケージ アクセス」パーミッションを無視しているようです ...?)。
私はこれを見つけました。私の質問は、スクリプト エンジンにカスタム ClassLoader をインストールするにはどうすればよいですか? (または、必要に応じて ClassLoader をグローバルに置き換えるにはどうすればよいですか?)