2011-02-07 47 views
1

我正在創建一個運行下載的Java代碼的應用程序,我希望能夠確切指定代碼可以訪問的內置Java類。我想這涉及到使用ClassLoader和SecurityManager,但是我在谷歌上找到的東西並沒有幫助。如何在Java中爲用戶代碼創建類白名單?

回答

0

我認爲,你應該創建自定義類加載器或使用UrlClassLoader配置爲從指定的URL加載類。請注意,文件系統中的文件可以解釋爲URL,因此不用擔心。

例如,如果您有2個jar文件foo.jar和bar.jar。 foo.jar是允許的,bar.jar僅限於您的應用程序的一部分。只需在類加載器的路徑中添加第一個jar即可。第二個將是不可見的。

如果您希望在訪問禁止類時拋出SecurityException,那麼必須實現您自己的類加載器。它可以是2個URL類加載器的組合:其中一個使用foo.jar,另一個使用類路徑中的bar.jar。第二個類加載器應該重載方法loadClass,並在每次成功加載類時拋出安全性異常。雖然我沒有看到這個解決方案的好處。

+0

但他在問*內置的Java類*。 – maaartinus 2011-02-07 21:46:16

相關問題