2011-06-07 96 views
3

如何控制對我的捆綁包的訪問。我有一套軟件包,通過導出MANIFEST.MF。暴露的軟件包應該只在我的軟件包中使用。不應該允許其他外部軟件包使用「導入軟件包」來使用這些軟件包。管理對OSGI捆綁包的訪問

有什麼辦法可以強加這些限制嗎?

+1

你能解釋爲什麼你不希望其他軟件包能夠導入你的軟件包嗎? – 2011-06-07 10:06:53

回答

3

首先,是否有人導入你的軟件包?除非你正在導出沒有人應該看到的實現(在這種情況下,你應該重新考慮你的分區),通常沒有什麼問題可以讓一些軟件包圍繞其他人導入或不導入。

如果您確定需要隱藏某些軟件包,則沒有簡單的方法。浮現在腦海中有些東西是

  • 使用ResolverHook來限制你的包的可見性(僅限4.3),
  • embedded framework運行你的包,只露出你想從共享包該框架給主持人。

但是,這些都是相當笨手笨腳的方法,我會遠離他們,除非你是例如。建立你自己的應用服務器。

4

你可以看看OSGi Security(2.Security Layer OSGi Core Spec)來管理對各種資源(包,包,服務等)的限制。

在你的情況下,你可以設置PackagePermission IMPORT/EXPORT操作到你的包。其他軟件包將無權導入您的軟件包。