2009-06-05 37 views
2

我們有供應商提供的Jar,其中包含我們希望通過AOP進行擴展和/或修改的類。默認的Sun JVM安全模型不允許未簽名或由其他人簽名的代碼在簽名的jar中擴展類。我們可以輕鬆地從jar文件中刪除簽名,但我更願意將JVM配置爲忽略jar簽名安全措施。這可以做到嗎?請注意,我們處於一個非常受控制的環境中,所以我們相對漠不關心將流氓代碼插入供應商提供的jar包中。如何讓JVM忽略Jar簽名

回答

2

我不確定這是否適用於您的情況,但可能。編寫你自己的類加載器,但不基於URLClassLoader,只是擴展Classloader並以你自己的方式解決你的類。

用這個類加載器加載你的類並應用你的AOP魔法,我可以說它應該工作。

我所做的就是實現基於插件的框架,我不想籤每一段代碼(庫/插件),不僅是引導庫(加載應用程序的一個)。當然,您在類加載器中運行的代碼必須是可信的,因爲您繞過了一些默認安全約束。

+0

一個好主意,我沒有考慮過。對於我們來說,關閉安全的好處是政治性的 - 如果罐子具有相同的校驗由供應商提供的,然後藉口「你改變的東西,因此它是你的錯」不能那麼容易當給定出現支持問題。一個替代的類加載器可能是同等的飼料,用於逃跑嘗試。 – ShabbyDoo 2009-06-05 17:13:33