enforce catalog entitlement at OSGi-loading level
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/8a30e185 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/8a30e185 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/8a30e185 Branch: refs/heads/master Commit: 8a30e185426845ce35689b8097f8f49055179289 Parents: 88e9910 Author: Alex Heneveld <[email protected]> Authored: Mon Dec 22 18:21:48 2014 +0000 Committer: Alex Heneveld <[email protected]> Committed: Thu Feb 5 12:02:54 2015 +0000 ---------------------------------------------------------------------- .../management/classloading/OsgiBrooklynClassLoadingContext.java | 4 ++++ 1 file changed, 4 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8a30e185/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java b/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java index 3283fb3..12c1a54 100644 --- a/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java +++ b/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java @@ -25,6 +25,7 @@ import brooklyn.catalog.CatalogItem; import brooklyn.catalog.CatalogItem.CatalogBundle; import brooklyn.catalog.internal.CatalogUtils; import brooklyn.management.ManagementContext; +import brooklyn.management.entitlement.Entitlements; import brooklyn.management.ha.OsgiManager; import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.guava.Maybe; @@ -61,6 +62,9 @@ public class OsgiBrooklynClassLoadingContext extends AbstractBrooklynClassLoadin if (mgmt!=null) { osgi = ((ManagementContextInternal)mgmt).getOsgiManager(); if (osgi.isPresent() && getBundles()!=null && !getBundles().isEmpty()) { + if (!Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_CATALOG_ITEM, catalogItemId)) + return Maybe.absent("Not entitled to use this catalog entry"); + clazz = osgi.get().tryResolveClass(className, getBundles()); if (clazz.isPresent()) return (Maybe)clazz;
