Merge pull request #1165 from jbonofre/AMQ-9431

AMQ-9431: Add org.apache.activemq.broker.BouncyCastleNotAdded system property to not load BouncyCastle in BrokerService
This commit is contained in:
JB Onofré 2024-03-03 17:02:25 +01:00 committed by GitHub
commit a2fa43359e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 13 additions and 10 deletions

View File

@ -271,17 +271,20 @@ public class BrokerService implements Service {
static {
try {
ClassLoader loader = BrokerService.class.getClassLoader();
Class<?> clazz = loader.loadClass("org.bouncycastle.jce.provider.BouncyCastleProvider");
Provider bouncycastle = (Provider) clazz.getDeclaredConstructor().newInstance();
Integer bouncyCastlePosition = Integer.getInteger("org.apache.activemq.broker.BouncyCastlePosition");
int ret;
if (bouncyCastlePosition != null) {
ret = Security.insertProviderAt(bouncycastle, bouncyCastlePosition);
} else {
ret = Security.addProvider(bouncycastle);
Boolean bouncyCastleNotAdded = Boolean.getBoolean("org.apache.activemq.broker.BouncyCastleNotAdded");
if (bouncyCastleNotAdded == null || bouncyCastleNotAdded == false) {
ClassLoader loader = BrokerService.class.getClassLoader();
Class<?> clazz = loader.loadClass("org.bouncycastle.jce.provider.BouncyCastleProvider");
Provider bouncycastle = (Provider) clazz.getDeclaredConstructor().newInstance();
Integer bouncyCastlePosition = Integer.getInteger("org.apache.activemq.broker.BouncyCastlePosition");
int ret;
if (bouncyCastlePosition != null) {
ret = Security.insertProviderAt(bouncycastle, bouncyCastlePosition);
} else {
ret = Security.addProvider(bouncycastle);
}
LOG.info("Loaded the Bouncy Castle security provider at position: {}", ret);
}
LOG.info("Loaded the Bouncy Castle security provider at position: {}", ret);
} catch(Throwable e) {
// No BouncyCastle found so we use the default Java Security Provider
}