Управление доступом к пакетам OSGI - PullRequest
3 голосов
/ 07 июня 2011

Как я могу контролировать доступ к своим пакетам.У меня есть набор пакетов, которые открывают пакеты через экспорт в MANIFEST.MF .Открытые пакеты должны использоваться только в моем наборе пакетов.Никакие другие внешние пакеты не должны использовать эти пакеты, используя «пакет импорта».

Можно ли как-то наложить эти ограничения?

Ответы [ 2 ]

4 голосов
/ 08 июня 2011

Вы можете взглянуть на OSGi Security (2.Security Layer OSGi Core Spec), чтобы управлять ограничениями для различных ресурсов (пакетов, пакетов, сервисов и т. Д.).

В вашем случае вы можете установить PackagePermission с действиями IMPORT / EXPORT для ваших пакетов.Другие пакеты не будут иметь никаких прав для импорта ваших пакетов.

3 голосов
/ 07 июня 2011

Во-первых, это проблема, что кто-то еще импортирует ваш пакет?Если вы не экспортируете реализации, которые никто не должен видеть (в этом случае вы все равно должны пересмотреть свое разбиение), обычно нет проблем с наличием некоторых пакетов, которые другие могут импортировать или не импортировать.

Если выВы уверены, что вам нужно скрыть определенные пакеты, нет простых способов сделать это.Некоторые вещи, которые приходят на ум:

  • , используйте ResolverHook , чтобы ограничить видимость ваших пакетов (доступно только из 4.3),
  • запускайте ваши пакеты в встроенный фреймворк , и предоставляет доступ к хосту только тем пакетам, которые вы хотите передать из этого фреймворка.

Тем не менее, оба эти метода довольно сложны, и я бы остановилсяот них, если вы, например, не создаете свой собственный сервер приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...