2012-03-12 48 views
1

編號喜歡沙箱我的嵌入式Groovy,我想介紹一個抽象,試圖解決類和資源時,它讀取的內容和內容。有補丁Groovy支持我想要的任何庫嗎?如何使Groovy從您的ClassLoader而不是文件系統讀取類?

+0

據我所知,沒有任何圖書館或抽象這樣做。我會去'Thread.currentThread()。contextClassLoader = <你的類加載器>'。 – 2012-03-17 14:33:40

+0

@benjaminMuschko那種sux,因爲任何人都可以設置ctx cl,並且使用SecurityManager阻止這種嘗試變得棘手。 – 2012-04-22 12:49:21

回答

0

我寫了一個CMS,用戶可以在Groovy中編寫自己的控制器。我使用自定義類加載器加載用戶的類,並且還設置了一個InheritedThreadLocal <布爾>告訴我的自定義SecurityManager控制器正在運行。

當此ThreadLocal中被設置爲真,則安全管理器將禁止通過checkMemberAccess()方法訪問某些成員,並且它僅允許訪問列入白名單的類和包在的checkPermission()方法。這樣,即使用戶使用其他類加載器來加載類,我仍然可以阻止對字段成員的訪問。

相關問題