diff --git a/src/main/java/org/gcube/smartgears/connector/resourceregistry/FacetBasedPublisher.java b/src/main/java/org/gcube/smartgears/connector/resourceregistry/FacetBasedPublisher.java index d9103af..69bc238 100644 --- a/src/main/java/org/gcube/smartgears/connector/resourceregistry/FacetBasedPublisher.java +++ b/src/main/java/org/gcube/smartgears/connector/resourceregistry/FacetBasedPublisher.java @@ -32,7 +32,6 @@ public class FacetBasedPublisher implements Publisher { AuthorizationProvider authorizationProvider = containerContext.configuration().authorizationProvider(); SortedSet contextToIterate = new TreeSet<>(contexts); final String context = contextToIterate.first(); - try { AuthorizedTasks.executeSafely( () -> { for (final String c : contextToIterate) { @@ -131,9 +130,18 @@ public class FacetBasedPublisher implements Publisher { @Override public boolean update(ContainerContext containerContext) { HostingNodeManager hostingNodeManager = (HostingNodeManager) containerContext.properties().lookup(Constants.HOSTING_NODE_MANAGER_PROPERTY).value(); + AuthorizationProvider authorizationProvider = containerContext.configuration().authorizationProvider(); + SortedSet contextToIterate = new TreeSet<>(authorizationProvider.getContexts()); + final String context = contextToIterate.first(); try { - hostingNodeManager.updateFacets(); - } catch (ResourceRegistryException e) { + AuthorizedTasks.executeSafely( () -> { + try { + hostingNodeManager.updateFacets(); + } catch (ResourceRegistryException e) { + throw new RuntimeException(e); + } + }, authorizationProvider.getSecretForContext(context)); + }catch (Throwable e) { logger.error("Unable to update {} (id='{}')", HostingNode.NAME, containerContext.id(), e); } return true; @@ -142,9 +150,18 @@ public class FacetBasedPublisher implements Publisher { @Override public boolean update(ApplicationContext applicationContext) { EServiceManager eServiceManager = (EServiceManager) applicationContext.properties().lookup(Constants.ESERVICE_MANAGER_PROPERTY).value(); + AuthorizationProvider authorizationProvider = applicationContext.container().configuration().authorizationProvider(); + SortedSet contextToIterate = new TreeSet<>(authorizationProvider.getContexts()); + final String context = contextToIterate.first(); try { - eServiceManager.updateFacets(); - } catch (ResourceRegistryException e) { + AuthorizedTasks.executeSafely( () -> { + try { + eServiceManager.updateFacets(); + } catch (ResourceRegistryException e) { + throw new RuntimeException(e); + } + }, authorizationProvider.getSecretForContext(context)); + }catch (Throwable e) { logger.error("Unable to update {} (name='{}', id='{}') ", EService.NAME, applicationContext.name(), applicationContext.id(), e); } return true;