Nathan Hook created AMQ-7142:
--------------------------------

             Summary: Inserting Bouncy Castle Provider Early in Java Security 
Provider Chain Breaks KeyStore Loading
                 Key: AMQ-7142
                 URL: https://issues.apache.org/jira/browse/AMQ-7142
             Project: ActiveMQ
          Issue Type: Bug
          Components: activemq-camel
    Affects Versions: 5.15.2
         Environment: OpenJDK 11 (AdoptOpenJDK).

Mac OS
            Reporter: Nathan Hook


The insertion of the Bouncy Castle Provider in the 
org.apache.activemq.broker.BrokerService class is causing issues with our app 
that expecting one of the default SunJCE Ciphers to be called, but a Bouncy 
Castle Cipher is returned instead.

This causes our Spring Security SAML keystores to not be loaded correctly 
because the Bouncy Castle Cipher thinks that the keystore was tampered with.

 

I believe that the source of the problem is this line in the BrokerService 
class:

Security.insertProviderAt(bouncycastle, 
Integer.getInteger("org.apache.activemq.broker.BouncyCastlePosition", 2));

Looking at the Java 11 source code there are 6 providers installed by the 
java.security.Security class in the initializeStatic method:
{code:java}
private static void initializeStatic() {
 props.put("security.provider.1", "sun.security.provider.Sun");
 props.put("security.provider.2", "sun.security.rsa.SunRsaSign");
 props.put("security.provider.3", "com.sun.net.ssl.internal.ssl.Provider");
 props.put("security.provider.4", "com.sun.crypto.provider.SunJCE");
 props.put("security.provider.5", "sun.security.jgss.SunProvider");
 props.put("security.provider.6", "com.sun.security.sasl.Provider");
}{code}
 

If possible it would be great if the org.apache.activemq.broker.BrokerService 
class would call 

addProvider instead of insertProviderAt.

 

Thank you for your time.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to