2013-02-01 4 views
12

기존 App-Server (TomCat) 제품에 몇 가지 추가 JUnit 테스트를 추가하려고합니다. 나는 (기존의 그리고 현장에 놓인) 커스텀 TrustManager에 관한 문제에 봉착했다. 이 기능은 프로덕션에서는 잘 작동하지만 JUnit에서는 예외가 발생합니다.TrustManagerFactory가 TrustManagerFactory (Java)가 아닌 경우

사용자 정의 TrustManager는 경로에서 키 스토어를로드하기 만하고 우리 고유의 공용 인증서를 암시 적으로 신뢰합니다.

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

예외 : 어떤 이유로, JUnits이를 사용하여 다음 줄에 예외가 발생이 예외가 무엇 제공자에 관계없이 발생

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

/알고리즘 조합을 사용하는 ("SunX509" .getDefaultAlgorithm() 등).

어떤 통찰력이라도 대단히 감사하겠습니다.

+0

당신이 사용합니까 JVM https://groups.google.com/forum/#!topic/powermock/v4nreP2AnOQ에서 가져

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

: 그것에 대한 해결책은 테스트 클래스에 주석을 사용하는 것입니다? – zibi

+0

AFAICT, Idea는 % JAVA_HOME %을 (를) 사용하여 다음을 확인합니다. 'java version 1.6.0_23 "' ' Java (TM) SE 런타임 환경 (빌드 1.6.0_23-b05)' ' Java HotSpot -Bit Server VM (빌드 19.0-b09, 혼합 모드)' –

+0

JUnit이 보안 공급자 구성을 어떻게 든 엉망으로 만든 것처럼 보입니다. – EJP

답변

26

글쎄, PowerMock이 SSL 문제로 엉망이되어 잘못된 팩토리를로드하는 것 같습니다. 이

+0

완벽한 :) 감사합니다! – CoderSpinoza