RMI を使用して、 class のオブジェクトを返すように指定されたメソッドを呼び出していますClassX
。
ClassX xObj = remoteObject.meth(...);
SubclassOfX
リモート メソッドが のローカルで不明なサブクラスのインスタンスを実際に返す場合ClassX
、このクラスSubclassOfX
は から自動的にダウンロードcodebase
されます ( のシリアル化されたインスタンスの注釈によって指定されますSubclassOfX
)。
(必要な方へ: RMI のコードベースの概念)
Java17 より前は、SecurityManager (およびポリシー ファイル) を使用して、コードベースからクラスをロードできるようにする必要がありました。ただし、Java17 以降、SecurityManager は非推奨になり、削除対象としてマークされています。
私の質問: 将来、コードベースからのクラスのロードを許可/制御するにはどうすればよいですか?
Edit1:そして、jep411を引用してコメントに答えるだけです:私はこのドキュメントについて知っていますが、SecurityManagerのこのRMIユースケースには解決策/代替案はありません。