From 012cac88dc07a42dd55abff7af6f43228b960d66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Baptiste=20Onofr=C3=A9?= Date: Sat, 2 Mar 2024 08:28:31 +0100 Subject: [PATCH] AMQ-9431: Add org.apache.activemq.broker.BouncyCastleNotAdded system property to not load BouncyCastle in BrokerService (cherry picked from commit 0a90f323ce5e7ad7d7ea555361afca6c2410f010) --- .../apache/activemq/broker/BrokerService.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java index 5ad7bf8c50..0fb262418f 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java +++ b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java @@ -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 }