ユーザーエクスペリエンスを向上させるために、ユーザーがサードパーティの「プラグイン」をロードできる Java アプリケーションがあります。これらのプラグインで使用するための API は存在しますが、サードパーティ ソフトウェアは、セキュリティのために内部アプリケーション クラスへのアクセスを制限する必要があります。プラグインに制限されたパッケージは「com.example」で、許可されたパッケージは「com.example.api」です。API クラスは、難読化された内部クラスを呼び出します。
これを調査した後、 SecurityManager のいくつかのメソッド、checkMemberAccess(Class, int)とcheckPackageAccess(String)に出会いました。どちらも私の目標への実行可能なパスのようです。しかし、いくつかのテストとさらなる調査を行った結果、checkMemberAccess はリフレクション呼び出しにのみ適用され、checkPackageAccess はクラス ローダーが loadClass を呼び出したときにのみ呼び出されることがわかりました。
パッケージへのアクセスを制限する合理的な方法は何ですか (com.example.api ではなく com.example)?