他の人が自分のプラグインのjarをアップロードできるシンプルなプラグインシステムを作成しましたが、プラグインシステムはそれをロードしてコードを実行します。私はどのようにjarをJavaで新しいスレッドを作成することを禁じることができますか?
ロードされたプラグインロジックを実行するために、プラグインシステムはサブクラスFunction<Input, Output>
を取得しますが、その機能が新しいスレッドを作成したり、System.exit
のような危険な動作をしないようにします。この行動をどうやって禁止することができますか?
私はAccessController
またはSecurityManager
をJavaで見つけました。私の意図を実装するためにどのように使用するのですか?
あなたがリンクした答えは、スレッドが開始されないようにSecurityManagerを使用する方法を説明しているので、どうやってそれが不可能であると結論付けることができないのか分かりません。その答えを得るには、「java.lang.SecurityManagerをサブクラス化し、getThreadGroupメソッドをオーバーライドしてルートThreadGroupを返すことです。これにより、Javaがあるかどうかに基づいてスレッドがコードを作成できるかどうかを制御できます。 lang.RuntimePermission "modifyThreadGroup"。 " –
私の回答を更新してくれてありがとうございました.-) – GhostCat
@GhostCat FGITW hmmm? – Gab