Когда TrustManagerFactory не является TrustManagerFactory (Java)



Я пытаюсь добавить дополнительный тест JUnit к существующему продукту App-Server (TomCat). Я столкнулся с проблемой с (существующим и выставленным) пользовательским 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 () и др.).



Любое озарение будет высоко оценено.
635   1  

1 ответ:

Ну, похоже, PowerMock испортил проблемы SSL, и, таким образом, вы столкнулись с загрузкой неправильной фабрики. Решение для этого заключается в использовании аннотации к тестовому классу:

@PowerMockIgnore("javax.net.ssl.*")

Это взято из https://groups.google.com/forum/#! тема/powermock/v4nreP2AnOQ

Comments

    Ничего не найдено.