2013-02-01 15 views
12

Sto tentando di aggiungere alcuni test JUnit aggiuntivi a un prodotto App-Server (TomCat) esistente. Ho riscontrato un problema con il TrustManager personalizzato (esistente e in campo). Questa cosa funziona bene in produzione, ma durante JUnit, fa eccezione.Quando un TrustManagerFactory non è un TrustManagerFactory (Java)

Il TrustManager personalizzato carica semplicemente un keystore da un percorso e si fida implicitamente dei nostri certificati pubblici. Per qualche ragione, di utilizzare questo in JUnits causa un'eccezione sulla riga seguente:

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

Eccezione:

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

Questa eccezione avviene indipendentemente da ciò che Provider/combinazioni di algoritmi sono utilizzati ("SunX509", .getDefaultAlgorithm(), et al.).

Qualsiasi intuizione sarà molto apprezzata.

+0

Quale JVM usi? – zibi

+0

AFAICT, Idea utilizza% JAVA_HOME%, che risolve: 'versione java" 1.6.0_23 "' 'Java (TM) SE Runtime Environment (build 1.6.0_23-b05)' 'Java HotSpot (TM) 64 -Bit Server VM (build 19.0-b09, modalità mista) ' –

+0

Sembra che JUnit abbia in qualche modo incasinato la configurazione dei provider di sicurezza. – EJP

risposta