Certificato client SSL in Maven

Io uso il “plugin maven-jaxb22″ per generare classi così posso chiamare un servizio web scritto in .Net. Di solito funziona bene, ma questa volta, posso accedere al WSDL solo utilizzando un certificato client tramite HTTPS (non disponibile tramite HTTP).

Sono stato in grado di farlo funzionare con SoapUI. Ho aggiunto il certificato client in un keystore JKS e l’ho aggiunto alle preferenze SoapUI. Poi ho creato un nuovo progetto specificando l’URL che assomiglia a questo: https://server.com/Service?wsdl . SoapUI ha generato il modello di richiesta. Sono stato facilmente in grado di interrogare il servizio web e ottenere una risposta. Quindi questo dimostra che il WSDL è disponibile e il servizio web funziona.

Ora, nel mio file pom, sto usando questo plugin:

 MyService   org.apache.maven.plugins maven-compiler-plugin 3.1  1.7 1.7    org.jvnet.jaxb2.maven2 maven-jaxb22-plugin 0.8.3  true true WSDL true  https://server.com/Service?wsdl      generate       

Come posso dire a Maven dove si trova il mio certificato cliente?

Grazie

È ansible utilizzare il plug-in delle proprietà Maven o utilizzare una proprietà JVM per fornire il percorso dell’archivio di fiducia.

Nella tua sezione POM build / plugins , aggiungi una nuova voce plugin , dove il keystore sarebbe YourKeyStore.jks per questo esempio:

 ..  org.codehaus.mojo properties-maven-plugin 1.0-alpha-2    set-system-properties     javax.net.ssl.trustStore ${basedir}/src/test/jmeter/jmeterTrustedKeystore.jks   javax.net.ssl.keyStorePassword changeit       ... 

È ansible utilizzare la configurazione propety di maven per configurare le proprietà del sistema Java. Fare attenzione a impostare “keyStore” non “trustStore”.

Inoltre, se si sta utilizzando un certificato che non proviene da una CA valida, è necessario configurare maven.wagon.http.ssl.insecure = true e maven.wagon.http.ssl.allowall = true

Nel tuo caso usa:

 ..    generate     javax.net.ssl.keyStore yourks.jks   javax.net.ssl.keyStoreType jks   javax.net.ssl.keyStorePassword changeit   maven.wagon.http.ssl.insecure true   maven.wagon.http.ssl.allowall true      ..