You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2016/03/02 11:01:25 UTC

svn commit: r1733240 - in /qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security: AbstractKeyStore.java FileKeyStoreImpl.java NonJavaKeyStoreImpl.java

Author: rgodfrey
Date: Wed Mar  2 10:01:25 2016
New Revision: 1733240

URL: http://svn.apache.org/viewvc?rev=1733240&view=rev
Log:
QPID-6995 : refactor to move common code into a base class

Added:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java   (with props)
Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java

Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java?rev=1733240&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java Wed Mar  2 10:01:25 2016
@@ -0,0 +1,165 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.security;
+
+import java.util.Map;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.messages.KeyStoreMessages;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfigurationChangeListener;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.KeyStore;
+import org.apache.qpid.server.model.State;
+
+public abstract class AbstractKeyStore<X extends AbstractKeyStore<X>>
+        extends AbstractConfiguredObject<X> implements KeyStore<X>
+{
+    private static Logger LOGGER = LoggerFactory.getLogger(AbstractKeyStore.class);
+
+    private static final long ONE_DAY = 24l * 60l * 60l * 1000l;
+
+    private final Broker<?> _broker;
+    private final EventLogger _eventLogger;
+
+    private ScheduledFuture<?> _checkExpiryTaskFuture;
+
+
+    public AbstractKeyStore(Map<String, Object> attributes, Broker<?> broker)
+    {
+        super(parentsMap(broker), attributes);
+
+        _broker = broker;
+        _eventLogger = broker.getEventLogger();
+        _eventLogger.message(KeyStoreMessages.CREATE(getName()));
+    }
+
+    public final Broker<?> getBroker()
+    {
+        return _broker;
+    }
+
+    final EventLogger getEventLogger()
+    {
+        return _eventLogger;
+    }
+
+    @Override
+    protected void onClose()
+    {
+        super.onClose();
+        if(_checkExpiryTaskFuture != null)
+        {
+            _checkExpiryTaskFuture.cancel(false);
+            _checkExpiryTaskFuture = null;
+        }
+    }
+
+    protected void initializeExpiryChecking()
+    {
+        int checkFrequency;
+        try
+        {
+            checkFrequency = getContextValue(Integer.class, CERTIFICATE_EXPIRY_CHECK_FREQUENCY);
+        }
+        catch (IllegalArgumentException | NullPointerException e)
+        {
+            LOGGER.warn("Cannot parse the context variable {} ", CERTIFICATE_EXPIRY_CHECK_FREQUENCY, e);
+            checkFrequency = DEFAULT_CERTIFICATE_EXPIRY_CHECK_FREQUENCY;
+        }
+        if(getBroker().getState() == State.ACTIVE)
+        {
+            _checkExpiryTaskFuture = getBroker().scheduleHouseKeepingTask(checkFrequency, TimeUnit.DAYS, new Runnable()
+            {
+                @Override
+                public void run()
+                {
+                    checkCertificateExpiry();
+                }
+            });
+        }
+        else
+        {
+            final int frequency = checkFrequency;
+            getBroker().addChangeListener(new ConfigurationChangeListener()
+            {
+                @Override
+                public void stateChanged(final ConfiguredObject<?> object, final State oldState, final State newState)
+                {
+                    if (newState == State.ACTIVE)
+                    {
+                        _checkExpiryTaskFuture =
+                                getBroker().scheduleHouseKeepingTask(frequency, TimeUnit.DAYS, new Runnable()
+                                {
+                                    @Override
+                                    public void run()
+                                    {
+                                        checkCertificateExpiry();
+                                    }
+                                });
+                        getBroker().removeChangeListener(this);
+                    }
+                }
+
+                @Override
+                public void childAdded(final ConfiguredObject<?> object, final ConfiguredObject<?> child)
+                {
+
+                }
+
+                @Override
+                public void childRemoved(final ConfiguredObject<?> object, final ConfiguredObject<?> child)
+                {
+
+                }
+
+                @Override
+                public void attributeSet(final ConfiguredObject<?> object,
+                                         final String attributeName,
+                                         final Object oldAttributeValue,
+                                         final Object newAttributeValue)
+                {
+
+                }
+
+                @Override
+                public void bulkChangeStart(final ConfiguredObject<?> object)
+                {
+
+                }
+
+                @Override
+                public void bulkChangeEnd(final ConfiguredObject<?> object)
+                {
+
+                }
+            });
+        }
+    }
+
+    protected abstract void checkCertificateExpiry();
+}

Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java?rev=1733240&r1=1733239&r2=1733240&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java Wed Mar  2 10:01:25 2016
@@ -53,7 +53,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.logging.messages.KeyStoreMessages;
-import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfigurationChangeListener;
 import org.apache.qpid.server.model.ConfiguredObject;
@@ -71,13 +70,9 @@ import org.apache.qpid.transport.network
 import org.apache.qpid.transport.network.security.ssl.SSLUtil;
 
 @ManagedObject( category = false )
-public class FileKeyStoreImpl extends AbstractConfiguredObject<FileKeyStoreImpl> implements FileKeyStore<FileKeyStoreImpl>
+public class FileKeyStoreImpl extends AbstractKeyStore<FileKeyStoreImpl> implements FileKeyStore<FileKeyStoreImpl>
 {
-    private static Logger LOGGER = LoggerFactory.getLogger(FileKeyStoreImpl.class);
-
     private static final long ONE_DAY = 24l * 60l * 60l * 1000l;
-    private final Broker<?> _broker;
-    private final EventLogger _eventLogger;
 
     @ManagedAttributeField
     private String _type;
@@ -99,28 +94,12 @@ public class FileKeyStoreImpl extends Ab
         Handler.register();
     }
 
-    private ScheduledFuture<?> _checkExpiryTaskFuture;
-
     @ManagedObjectFactoryConstructor
     public FileKeyStoreImpl(Map<String, Object> attributes, Broker<?> broker)
     {
-        super(parentsMap(broker), attributes);
-
-        _broker = broker;
-        _eventLogger = _broker.getEventLogger();
-        _eventLogger.message(KeyStoreMessages.CREATE(getName()));
+        super(attributes, broker);
     }
 
-    @Override
-    protected void onClose()
-    {
-        super.onClose();
-        if(_checkExpiryTaskFuture != null)
-        {
-            _checkExpiryTaskFuture.cancel(false);
-            _checkExpiryTaskFuture = null;
-        }
-    }
 
     @Override
     public void onValidate()
@@ -135,7 +114,7 @@ public class FileKeyStoreImpl extends Ab
         // verify that it is not in use
         String storeName = getName();
 
-        Collection<Port> ports = new ArrayList<Port>(_broker.getPorts());
+        Collection<Port> ports = new ArrayList<Port>(getBroker().getPorts());
         for (Port port : ports)
         {
             if (port.getKeyStore() == this)
@@ -145,91 +124,14 @@ public class FileKeyStoreImpl extends Ab
         }
         deleted();
         setState(State.DELETED);
-        _eventLogger.message(KeyStoreMessages.DELETE(getName()));
+        getEventLogger().message(KeyStoreMessages.DELETE(getName()));
         return Futures.immediateFuture(null);
     }
 
     @StateTransition(currentState = {State.UNINITIALIZED, State.ERRORED}, desiredState = State.ACTIVE)
     protected ListenableFuture<Void> doActivate()
     {
-        int checkFrequency;
-        try
-        {
-            checkFrequency = getContextValue(Integer.class, CERTIFICATE_EXPIRY_CHECK_FREQUENCY);
-        }
-        catch (IllegalArgumentException | NullPointerException e)
-        {
-            LOGGER.warn("Cannot parse the context variable {} ", CERTIFICATE_EXPIRY_CHECK_FREQUENCY, e);
-            checkFrequency = DEFAULT_CERTIFICATE_EXPIRY_CHECK_FREQUENCY;
-        }
-        if(_broker.getState() == State.ACTIVE)
-        {
-            _checkExpiryTaskFuture = _broker.scheduleHouseKeepingTask(checkFrequency, TimeUnit.DAYS, new Runnable()
-            {
-                @Override
-                public void run()
-                {
-                    checkCertificateExpiry();
-                }
-            });
-        }
-        else
-        {
-            final int frequency = checkFrequency;
-            _broker.addChangeListener(new ConfigurationChangeListener()
-            {
-                @Override
-                public void stateChanged(final ConfiguredObject<?> object, final State oldState, final State newState)
-                {
-                    if (newState == State.ACTIVE)
-                    {
-                        _checkExpiryTaskFuture =
-                                _broker.scheduleHouseKeepingTask(frequency, TimeUnit.DAYS, new Runnable()
-                                {
-                                    @Override
-                                    public void run()
-                                    {
-                                        checkCertificateExpiry();
-                                    }
-                                });
-                        _broker.removeChangeListener(this);
-                    }
-                }
-
-                @Override
-                public void childAdded(final ConfiguredObject<?> object, final ConfiguredObject<?> child)
-                {
-
-                }
-
-                @Override
-                public void childRemoved(final ConfiguredObject<?> object, final ConfiguredObject<?> child)
-                {
-
-                }
-
-                @Override
-                public void attributeSet(final ConfiguredObject<?> object,
-                                         final String attributeName,
-                                         final Object oldAttributeValue,
-                                         final Object newAttributeValue)
-                {
-
-                }
-
-                @Override
-                public void bulkChangeStart(final ConfiguredObject<?> object)
-                {
-
-                }
-
-                @Override
-                public void bulkChangeEnd(final ConfiguredObject<?> object)
-                {
-
-                }
-            });
-        }
+        initializeExpiryChecking();
         setState(State.ACTIVE);
         return Futures.immediateFuture(null);
     }
@@ -414,7 +316,7 @@ public class FileKeyStoreImpl extends Ab
         }
     }
 
-    private void checkCertificateExpiry()
+    protected void checkCertificateExpiry()
     {
         try
         {
@@ -460,7 +362,7 @@ public class FileKeyStoreImpl extends Ab
                                             long timeToExpiry = cert.getNotAfter().getTime() - currentTime;
                                             int days = Math.max(0,(int)(timeToExpiry / (ONE_DAY)));
 
-                                            _eventLogger.message(KeyStoreMessages.EXPIRING(getName(), String.valueOf(days), cert.getSubjectDN().toString()));
+                                            getEventLogger().message(KeyStoreMessages.EXPIRING(getName(), String.valueOf(days), cert.getSubjectDN().toString()));
                                         }
                                         catch(CertificateNotYetValidException e)
                                         {
@@ -483,4 +385,5 @@ public class FileKeyStoreImpl extends Ab
         {
         }
     }
+
 }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java?rev=1733240&r1=1733239&r2=1733240&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java Wed Mar  2 10:01:25 2016
@@ -71,14 +71,11 @@ import org.apache.qpid.server.util.urlst
 import org.apache.qpid.transport.network.security.ssl.SSLUtil;
 
 @ManagedObject( category = false )
-public class NonJavaKeyStoreImpl extends AbstractConfiguredObject<NonJavaKeyStoreImpl> implements NonJavaKeyStore<NonJavaKeyStoreImpl>
+public class NonJavaKeyStoreImpl extends AbstractKeyStore<NonJavaKeyStoreImpl> implements NonJavaKeyStore<NonJavaKeyStoreImpl>
 {
     private static final Logger LOGGER = LoggerFactory.getLogger(NonJavaKeyStoreImpl.class);
     private static final long ONE_DAY = 24l * 60l * 60l * 1000l;
 
-    private final Broker<?> _broker;
-    private final EventLogger _eventLogger;
-
     @ManagedAttributeField( afterSet = "updateKeyManagers" )
     private String _privateKeyUrl;
     @ManagedAttributeField( afterSet = "updateKeyManagers" )
@@ -97,27 +94,10 @@ public class NonJavaKeyStoreImpl extends
 
     private X509Certificate _certificate;
 
-    private ScheduledFuture<?> _checkExpiryTaskFuture;
-    private int _checkFrequency;
-
     @ManagedObjectFactoryConstructor
     public NonJavaKeyStoreImpl(final Map<String, Object> attributes, Broker<?> broker)
     {
-        super(parentsMap(broker), attributes);
-        _broker = broker;
-        _eventLogger = _broker.getEventLogger();
-        _eventLogger.message(KeyStoreMessages.CREATE(getName()));
-    }
-
-    @Override
-    protected void onClose()
-    {
-        super.onClose();
-        if(_checkExpiryTaskFuture != null)
-        {
-            _checkExpiryTaskFuture.cancel(false);
-            _checkExpiryTaskFuture = null;
-        }
+        super(attributes, broker);
     }
 
     @Override
@@ -203,7 +183,7 @@ public class NonJavaKeyStoreImpl extends
         // verify that it is not in use
         String storeName = getName();
 
-        Collection<Port> ports = new ArrayList<Port>(_broker.getPorts());
+        Collection<Port> ports = new ArrayList<Port>(getBroker().getPorts());
         for (Port port : ports)
         {
             if (port.getKeyStore() == this)
@@ -216,92 +196,14 @@ public class NonJavaKeyStoreImpl extends
         }
         deleted();
         setState(State.DELETED);
-        _eventLogger.message(KeyStoreMessages.DELETE(getName()));
+        getEventLogger().message(KeyStoreMessages.DELETE(getName()));
         return Futures.immediateFuture(null);
     }
 
     @StateTransition(currentState = {State.UNINITIALIZED, State.ERRORED}, desiredState = State.ACTIVE)
     protected ListenableFuture<Void> doActivate()
     {
-        int checkFrequency;
-        try
-        {
-            checkFrequency = getContextValue(Integer.class, CERTIFICATE_EXPIRY_CHECK_FREQUENCY);
-        }
-        catch (IllegalArgumentException | NullPointerException e)
-        {
-            LOGGER.warn("Cannot parse the context variable {} ", CERTIFICATE_EXPIRY_CHECK_FREQUENCY, e);
-            checkFrequency = DEFAULT_CERTIFICATE_EXPIRY_CHECK_FREQUENCY;
-        }
-        if(_broker.getState() == State.ACTIVE)
-        {
-            _checkExpiryTaskFuture = _broker.scheduleHouseKeepingTask(checkFrequency, TimeUnit.DAYS, new Runnable()
-            {
-                @Override
-                public void run()
-                {
-                    checkCertificateExpiry();
-                }
-            });
-        }
-        else
-        {
-            final int frequency = checkFrequency;
-            _broker.addChangeListener(new ConfigurationChangeListener()
-            {
-                @Override
-                public void stateChanged(final ConfiguredObject<?> object, final State oldState, final State newState)
-                {
-                    if (newState == State.ACTIVE)
-                    {
-                        _checkExpiryTaskFuture =
-                                _broker.scheduleHouseKeepingTask(frequency, TimeUnit.DAYS, new Runnable()
-                                {
-                                    @Override
-                                    public void run()
-                                    {
-                                        checkCertificateExpiry();
-                                    }
-                                });
-                        _broker.removeChangeListener(this);
-                    }
-                }
-
-                @Override
-                public void childAdded(final ConfiguredObject<?> object, final ConfiguredObject<?> child)
-                {
-
-                }
-
-                @Override
-                public void childRemoved(final ConfiguredObject<?> object, final ConfiguredObject<?> child)
-                {
-
-                }
-
-                @Override
-                public void attributeSet(final ConfiguredObject<?> object,
-                                         final String attributeName,
-                                         final Object oldAttributeValue,
-                                         final Object newAttributeValue)
-                {
-
-                }
-
-                @Override
-                public void bulkChangeStart(final ConfiguredObject<?> object)
-                {
-
-                }
-
-                @Override
-                public void bulkChangeEnd(final ConfiguredObject<?> object)
-                {
-
-                }
-            });
-        }
-
+        initializeExpiryChecking();
         setState(State.ACTIVE);
         return Futures.immediateFuture(null);
     }
@@ -374,7 +276,7 @@ public class NonJavaKeyStoreImpl extends
         }
     }
 
-    private void checkCertificateExpiry()
+    protected void checkCertificateExpiry()
     {
         try
         {
@@ -418,9 +320,9 @@ public class NonJavaKeyStoreImpl extends
                         long timeToExpiry = cert.getNotAfter().getTime() - currentTime;
                         int days = Math.max(0, (int) (timeToExpiry / (ONE_DAY)));
 
-                        _eventLogger.message(KeyStoreMessages.EXPIRING(getName(),
-                                                                       String.valueOf(days),
-                                                                       cert.getSubjectDN().toString()));
+                        getEventLogger().message(KeyStoreMessages.EXPIRING(getName(),
+                                                                           String.valueOf(days),
+                                                                           cert.getSubjectDN().toString()));
                     }
                     catch (CertificateNotYetValidException e)
                     {
@@ -448,5 +350,4 @@ public class NonJavaKeyStoreImpl extends
         return url;
     }
 
-
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org