Stefan Ferstl created AMQ-9431:
----------------------------------

             Summary: Don’t add Bouncycastle as Security Provider when found on 
the Classpath
                 Key: AMQ-9431
                 URL: https://issues.apache.org/jira/browse/AMQ-9431
             Project: ActiveMQ
          Issue Type: Improvement
          Components: Broker
            Reporter: Stefan Ferstl


When Bouncycastle (bcprov) is on the classpath, the class 
{{org.apache.activemq.broker.BrokerService}} automatically adds Bouncycastle as 
security provider at the end of the JVM's provider chain without the ability to 
prevent it: 
https://github.com/apache/activemq/blob/main/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java#L282
 .


When ActiveMQ is embedded in an application, this is quite an invasive step and 
can lead to unexpected behavior if the application does not expect Bouncycastle 
as security provider.

Looking at the commit history, this was introduced in May 2013 with AMQ-4520 to 
address problems with the TLS implementation in JDK 7. The Jira issue 
references another issue in the activemq-apollo project where similar problems 
with JDK 7 are mentioned: APLO-287. Apollo fixed these problems by adding 
Bouncycastle at the second position in the provider chain. In AMQ-4520 the same 
fix was introduced in {{{}BrokerService{}}}.
In May 2016, the position of Bouncycastle in the provider chain was made 
configurable by a system property with AMQ-6247 due to side effects of the 
original fix. The default was still the second position.
In January 2020 the default position was changed form 2 to the end of the 
provider chain with AMQ-7142.

Since this feature was initially introduced to address problems in JDK 7 and 
was subsequently causing problems in the years after (hence the other two 
changes in 2016 and 2020) I suggest to remove this feature completely or to at 
least allow disabling it by setting a system property.

I'll be happy to help with a PR if needed.

This issue affects all versions since the introduction of this feature.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to