2011-02-07 4 views
1

ダウンロードしたJavaコードを実行するアプリケーションを作成しています。コードがアクセスできる組み込みJavaクラスを正確に指定したいと考えています。私はこれがClassLoaderとSecurityManagerを使用することを想像していますが、私がGoogleで見つけたものは役に立たなかったのです。Javaでユーザーコード用のクラスホワイトリストを作成するにはどうすればよいですか?

答えて

0

あなたのカスタムクラスローダーを作成するか、指定されたURLからクラスをロードするように設定されたUrlClassLoaderを使用する必要があります。ファイルシステム内のファイルは、のURLとして解釈できるので、心配しないでください。

たとえば、2つのjarファイルfoo.jarおよびbar.jarがある場合。 foo.jarは許可されていますが、bar.jarはアプリケーションの一部として制限されています。最初のjarだけをクラスローダのパスに追加するだけです。 2番目は目に見えません。

禁止クラスにアクセスしたときにSecurityExceptionをスローしたい場合は、独自のクラスローダーを実装する必要があります。これは、2つのURLクラスローダーの合成でもかまいません:1つはfoo.jar、もう1つはクラスパスでbar.jarです。 2番目のクラスローダーは、クラスloadClassをオーバーライドし、クラスが正常にロードされるたびにセキュリティ例外をスローする必要があります。私はこのソリューションの大きな利点は見られませんが。

+0

しかし彼は*組み込みのJavaクラスについて質問しています*。 – maaartinus

+1

適切なセキュリティポリシーを使用することで、組み込みのJavaクラスへの最も敏感な呼び出しを防ぐことができます。^http://opens.oracle.com/javase/6/docs/technotes/guides/security/permissions.html –

+0

^これは私が探していたものです。ありがとうございました。 – Dan

関連する問題