当TrustManagerFactory不是TrustManagerFactory(Java)

前端之家收集整理的这篇文章主要介绍了当TrustManagerFactory不是TrustManagerFactory(Java)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为现有的App-Server(TomCat)产品添加一些额外的JUnit测试.我遇到了(现有和现场)定制TrustManager的问题.这个东西在生产中运行正常,但是在JUnit期间,它会提供异常.

定制的TrustManager仅从路径加载密钥库,并隐含地信任我们自己的公共证书.由于某些原因,在JUnits中使用它将导致以下行中的异常:

TrustManagerFactory tmFactory = TrustManagerFactory.getInstance("PKIX");

例外:

java.security.NoSuchAlgorithmException:  class configured for TrustManagerFactory: com.sun.net.ssl.internal.ssl.TrustManagerFactoryImpl$PKIXFactory not a TrustManagerFactory

无论使用什么提供程序/算法组合(“SunX509”,.getDefaultAlgorithm()等)),都会发生此异常.

任何见解将不胜感激.

解决方法

好吧,看起来像PowerMock混乱了SSL的问题,因此,你遇到装载一个错误的工厂.解决方案是在测试类上使用注释:
@PowerMockIgnore("javax.net.ssl.*")

这是从https://groups.google.com/forum/#!topic/powermock/v4nreP2AnOQ

猜你在找的Java相关文章