From 0be169531e9423c72f64205e4a5b34dd7207a91e Mon Sep 17 00:00:00 2001 From: Sergiy Shyrkov Date: Wed, 19 Oct 2016 10:50:13 +0200 Subject: [PATCH] [KARAF-4784] OsgiConfiguration for JAAS should fallback to default configuration --- .../jaas/config/impl/OsgiConfiguration.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/jaas/config/src/main/java/org/apache/karaf/jaas/config/impl/OsgiConfiguration.java b/jaas/config/src/main/java/org/apache/karaf/jaas/config/impl/OsgiConfiguration.java index 6c995ba1335..5c760fc2272 100644 --- a/jaas/config/src/main/java/org/apache/karaf/jaas/config/impl/OsgiConfiguration.java +++ b/jaas/config/src/main/java/org/apache/karaf/jaas/config/impl/OsgiConfiguration.java @@ -23,12 +23,23 @@ import org.apache.karaf.jaas.config.JaasRealm; import org.apache.karaf.util.collections.CopyOnWriteArrayIdentityList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class OsgiConfiguration extends Configuration { + + private final Logger logger = LoggerFactory.getLogger(OsgiConfiguration.class); private final List realms = new CopyOnWriteArrayIdentityList(); + + private Configuration defaultConfiguration; public void init() { + try { + defaultConfiguration = Configuration.getConfiguration(); + } catch (RuntimeException ex) { + logger.warn("Default configuration for fallback could not be retrieved", ex); + } Configuration.setConfiguration(this); } @@ -60,11 +71,15 @@ public AppConfigurationEntry[] getAppConfigurationEntry(String name) { } if (realm != null) { return realm.getEntries(); - } + } else if (defaultConfiguration != null) { + return defaultConfiguration.getAppConfigurationEntry(name); + } return null; } public void refresh() { - // Nothing to do, as we auto-update the configuration + if (defaultConfiguration != null) { + defaultConfiguration.refresh(); + } } }