You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ff...@apache.org on 2015/02/10 08:17:00 UTC

karaf git commit: [KARAF-3513]JMXConnectorServer should be able to pick up the new KeystoreInstance available in container

Repository: karaf
Updated Branches:
  refs/heads/karaf-2.x f7aeed880 -> 330b7ca1d


[KARAF-3513]JMXConnectorServer should be able to pick up the new KeystoreInstance available in container


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/330b7ca1
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/330b7ca1
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/330b7ca1

Branch: refs/heads/karaf-2.x
Commit: 330b7ca1d708aa0fce7f8ea67676930ae5357526
Parents: f7aeed8
Author: Freeman Fang <fr...@gmail.com>
Authored: Tue Feb 10 15:16:30 2015 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Tue Feb 10 15:16:30 2015 +0800

----------------------------------------------------------------------
 .../management/ConnectorServerFactory.java      | 32 +++++++++++++++++++-
 .../OSGI-INF/blueprint/karaf-management.xml     |  6 ++++
 2 files changed, 37 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/330b7ca1/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
----------------------------------------------------------------------
diff --git a/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java b/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
index f3a0203..1a82afc 100644
--- a/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
+++ b/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
@@ -16,7 +16,10 @@
  */
 package org.apache.karaf.management;
 
+import org.apache.karaf.jaas.config.KeystoreInstance;
 import org.apache.karaf.jaas.config.KeystoreManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.net.BindException;
@@ -41,6 +44,8 @@ import javax.net.ssl.SSLServerSocketFactory;
 import javax.rmi.ssl.SslRMIClientSocketFactory;
 
 public class ConnectorServerFactory {
+    
+    private static final Logger LOGGER = LoggerFactory.getLogger(ConnectorServerFactory.class);
 
     private enum AuthenticatorType { NONE, PASSWORD, CERTIFICATE };
 
@@ -214,7 +219,12 @@ public class ConnectorServerFactory {
         }
 
         if (this.secured) {
-            this.setupSsl();
+            try {
+                this.setupSsl();
+            } catch (Exception e) {
+                LOGGER.error("Can't init JMXConnectorServer with SSL enabled: " + e.getMessage());
+                return;
+            }
         }
 
         if (!AuthenticatorType.PASSWORD.equals(this.authenticatorType)) {
@@ -334,5 +344,25 @@ public class ConnectorServerFactory {
             return serverSocket;
         }
     }
+    
+    public void register(KeystoreInstance keystore, Map<String,?> properties) {
+        if (this.secured) {
+            try {
+                this.init();
+            } catch (Exception e) {
+                LOGGER.error("Can't re-init JMXConnectorServer with SSL enabled when register a keystore:" + e.getMessage());
+            }
+        }
+    }
+
+    public void unregister(KeystoreInstance keystore, Map<String,?> properties) {
+        if (this.secured) {
+            try {
+                this.init();
+            } catch (Exception e) {
+                LOGGER.error("Can't re-init JMXConnectorServer with SSL enabled when unregister a keystore: " + e.getMessage());
+            }
+        }
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/330b7ca1/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml
----------------------------------------------------------------------
diff --git a/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml b/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml
index 85f0bb1..e6039a8 100644
--- a/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml
+++ b/management/server/src/main/resources/OSGI-INF/blueprint/karaf-management.xml
@@ -130,5 +130,11 @@
             </map>
         </property>
     </bean>
+
+    <reference-list id="keystores"
+                    interface="org.apache.karaf.jaas.config.KeystoreInstance"
+                    availability="optional">
+        <reference-listener ref="connectorFactory" bind-method="register" unbind-method="unregister" />
+    </reference-list>
 </blueprint>