我花了两天时间用Tomcat(坏记录mac)追逐一个奇怪的SSL问题,我终于发现它是由Bouncycastle JCE Provider实现引起的。
这可能是我第三次遇到这种奇怪的,奇怪的行为问题(其他问题是重新加载webapps或读取证书信息)。
我相信Bouncycastle是一个很棒的库,但事实上它通常被添加为Security.addProvider()
的Java进程的全局提供程序,并且第三方库在内部执行并且没有任何警告,这使得它很大问题。 Example
那么,有没有办法阻止BC作为安全提供者被添加到全球? 我试图直接使用安全管理器并通过Tomcat,但我无法使其工作,我不知道如何才能禁用该操作。 (我不想在我的系统中进行任何其他更改)
我的代码使用该库,但它永远不需要将其添加为JCE提供程序。 我无法理解为什么JCE API以这种方式工作并产生如此大的不稳定性,但也许这是另一个问题。