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