From 595962671901f427bc4142867ef5cc84026c39ee Mon Sep 17 00:00:00 2001 From: Fabian Lange Date: Wed, 16 Mar 2016 10:21:56 +0100 Subject: [PATCH] [KARAF-4423] Jaas AutoEncryption support can correctly shutdown and is only started when needed. --- .../karaf/jaas/modules/impl/Activator.java | 16 +++++++++++----- .../properties/AutoEncryptionSupport.java | 6 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java index 1299b18d277..ae53396c064 100644 --- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java +++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java @@ -71,13 +71,16 @@ protected void doOpen() throws Exception { karafRealm = new KarafRealm(bundleContext, config); register(JaasRealm.class, karafRealm); - - autoEncryptionSupport = new AutoEncryptionSupport(config); + if (Boolean.parseBoolean((String) config.get(ENCRYPTION_ENABLED))) { + autoEncryptionSupport = new AutoEncryptionSupport(config); + } } @Override protected void doStop() { - StreamUtils.close(autoEncryptionSupport); + if (autoEncryptionSupport != null) { + autoEncryptionSupport.close(); + } super.doStop(); LDAPCache.clear(); } @@ -89,9 +92,12 @@ protected void reconfigure() { karafRealm.updated(config); } if (autoEncryptionSupport != null) { - StreamUtils.close(autoEncryptionSupport); + autoEncryptionSupport.close(); + autoEncryptionSupport = null; + } + if (Boolean.parseBoolean((String) config.get(ENCRYPTION_ENABLED))) { + autoEncryptionSupport = new AutoEncryptionSupport(config); } - autoEncryptionSupport = new AutoEncryptionSupport(config); } private Map getConfig() { diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/AutoEncryptionSupport.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/AutoEncryptionSupport.java index 9fc1a534e94..975497e6299 100644 --- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/AutoEncryptionSupport.java +++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/AutoEncryptionSupport.java @@ -41,13 +41,13 @@ public class AutoEncryptionSupport implements Runnable, Closeable { private final Logger LOGGER = LoggerFactory.getLogger(AutoEncryptionSupport.class); - boolean running; - private volatile EncryptionSupport encryptionSupport; + private volatile boolean running; + private EncryptionSupport encryptionSupport; private ExecutorService executor; public AutoEncryptionSupport(Map properties) { running = true; - this.encryptionSupport = new EncryptionSupport(properties); + encryptionSupport = new EncryptionSupport(properties); executor = Executors.newSingleThreadExecutor(); executor.execute(this); }