<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>httpclient | www.valeriofinazzo.it</title>
	<atom:link href="http://www.valeriofinazzo.it/wordpress/tag/httpclient/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.valeriofinazzo.it/wordpress</link>
	<description>Il sito dell&#039;ingegnere Valerio Finazzo</description>
	<lastBuildDate>Sun, 20 Sep 2020 10:42:41 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.3</generator>
	<item>
		<title>SPRING-BOOT &#8211; CONFIGURARE PROXY  e CERTIFICATI PER SERVIZI SOAP</title>
		<link>http://www.valeriofinazzo.it/wordpress/2020/09/spring-boot-configurare-proxy-e-certificati-per-servizi-soap/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 20 Sep 2020 10:42:38 +0000</pubDate>
				<category><![CDATA[SPRING BOOT]]></category>
		<category><![CDATA[httpclient]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[spring boot]]></category>
		<category><![CDATA[webservicetemplate]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=636</guid>

					<description><![CDATA[<p>Spring ws è un pacchetto messo a disposizione da Spring per gestire agevolmente la comunicazione tra servizi SOAP. La libreria consente di configurare agevolmente un server soap che riceve chiamate nel rispetto di uno schema definito dall&#8217;utente. Per maggiori informazioni rimando all&#8217;ottimo tutorial realizzato dai ragazzi di spring e che trovate qui Inoltre la libreria &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2020/09/spring-boot-configurare-proxy-e-certificati-per-servizi-soap/" class="more-link">Continua la lettura di <span class="screen-reader-text">SPRING-BOOT &#8211; CONFIGURARE PROXY  e CERTIFICATI PER SERVIZI SOAP</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2020/09/spring-boot-configurare-proxy-e-certificati-per-servizi-soap/">SPRING-BOOT – CONFIGURARE PROXY  e CERTIFICATI PER SERVIZI SOAP</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p>Spring ws è un pacchetto messo a disposizione da Spring per gestire agevolmente la comunicazione tra servizi SOAP.  La libreria consente di configurare agevolmente un server soap che riceve chiamate nel rispetto di uno schema definito dall&#8217;utente. Per maggiori informazioni rimando all&#8217;ottimo tutorial realizzato dai ragazzi di spring e che trovate <a href="https://spring.io/guides/gs/producing-web-service/" title="esporre un web service">qui</a></p>



<p>Inoltre la libreria consente di configurare agevolmente un client per poter invocare dei servizi esposti su un altro server e sulla configurazione base rimando sempre al tutorial di spring che trovate qui.</p>



<p>In questo articolo approfondiamo come configurare il client che gira all&#8217;interno di una rete con proxy e che richiede lo scambio dei certificati con il server su cui sono esposti i servizi soa.</p>



<p>Il nostro client si trova in una rete con 2 livelli di sicurezza: un proxy che regola il traffico verso l&#8217;esterno della nostra rete e un server che accetta chiamate crittografate con un certificato associato.</p>



<p>Per fare questo dobbiamo configurare il messagesender presente nella classe WebServiceTemplate con una istanza della classe <a href="eclipse-javadoc:%E2%98%82=contrp.be-springboot-trunk/C:%5C/Users%5C/Valerio%5C/.m2%5C/repository%5C/org%5C/springframework%5C/ws%5C/spring-ws-core%5C/3.0.8.RELEASE%5C/spring-ws-core-3.0.8.RELEASE.jar%3Corg">org</a>.<a href="eclipse-javadoc:%E2%98%82=contrp.be-springboot-trunk/C:%5C/Users%5C/Valerio%5C/.m2%5C/repository%5C/org%5C/springframework%5C/ws%5C/spring-ws-core%5C/3.0.8.RELEASE%5C/spring-ws-core-3.0.8.RELEASE.jar%3Corg.springframework">springframework</a>.<a href="eclipse-javadoc:%E2%98%82=contrp.be-springboot-trunk/C:%5C/Users%5C/Valerio%5C/.m2%5C/repository%5C/org%5C/springframework%5C/ws%5C/spring-ws-core%5C/3.0.8.RELEASE%5C/spring-ws-core-3.0.8.RELEASE.jar%3Corg.springframework.ws">ws</a>.<a href="eclipse-javadoc:%E2%98%82=contrp.be-springboot-trunk/C:%5C/Users%5C/Valerio%5C/.m2%5C/repository%5C/org%5C/springframework%5C/ws%5C/spring-ws-core%5C/3.0.8.RELEASE%5C/spring-ws-core-3.0.8.RELEASE.jar%3Corg.springframework.ws.transport">transport</a>.<a href="eclipse-javadoc:%E2%98%82=contrp.be-springboot-trunk/C:%5C/Users%5C/Valerio%5C/.m2%5C/repository%5C/org%5C/springframework%5C/ws%5C/spring-ws-core%5C/3.0.8.RELEASE%5C/spring-ws-core-3.0.8.RELEASE.jar%3Corg.springframework.ws.transport.http">http</a>.HttpComponentsMessageSender che utilizza la classe Apache HttpClient per l&#8217;invio di Post.</p>



<pre class="crayon-plain-tag">HttpComponentsMessageSender httpComponentsMessageSender = httpComponentsMessageSender();
        httpComponentsMessageSender.setHttpClient(httpClient());
		client.setMessageSender(httpComponentsMessageSender);</pre>



<p>Nella classe client sto settando  il message sender tramite un metodo seguente in configuro i tempi di timeout e a questo passo il client httoClient dove effettivamente configuro il proxy e il certificato</p>



<pre class="crayon-plain-tag">@Bean
public HttpComponentsMessageSender httpComponentsMessageSender() {     
    HttpComponentsMessageSender sender = new HttpComponentsMessageSender();
    sender.setReadTimeout(3000);
    sender.setConnectionTimeout(3000);
    return sender;
}</pre>



<pre class="crayon-plain-tag">@Bean
	public HttpClient httpClient() throws Exception {     
		
		KeyStore ks = KeyStore.getInstance(&quot;JKS&quot;);
        ks.load(keyStore.getInputStream(), keyStorePassword.toCharArray());
        try {
            keyStore.getInputStream().close();
        } catch (IOException e) {
        	e.printStackTrace();
        }
        KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        keyManagerFactory.init(ks, keyStorePassword.toCharArray());

        KeyStore ts = KeyStore.getInstance(&quot;JKS&quot;);
        ts.load(trustStore.getInputStream(), trustStorePassword.toCharArray());
        try {
            trustStore.getInputStream().close();
        } catch(IOException e) {
        	e.printStackTrace();
        }
        TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
        trustManagerFactory.init(ts);
        
        SSLContext sslContext = SSLContexts.custom()
        		.loadKeyMaterial(ks, keyStorePassword.toCharArray())
        		.loadTrustMaterial(ts, null)
        		.build();
        SSLConnectionSocketFactory sslsf = new 
                SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
        HttpClientBuilder clientBuilder = HttpClients.custom().setSSLSocketFactory(sslsf).
        		addInterceptorFirst(new HttpComponentsMessageSender.RemoveSoapHeadersInterceptor());
       	HttpHost proxy = new HttpHost(proxyHost, proxyPort);
       	clientBuilder.setProxy(proxy);
         HttpClient httpClient = clientBuilder.build();
        
        return httpClient;

	}</pre>



<p>Definisco il contesto SSL fornendo il keystore e il truststore. Definisco il proxy fornendo host e porta e infine creo il client usando la classe HttpClientBuilder.</p>



<p>Alla prossima</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F09%2Fspring-boot-configurare-proxy-e-certificati-per-servizi-soap%2F&amp;linkname=SPRING-BOOT%20%E2%80%93%20CONFIGURARE%20PROXY%20%20e%20CERTIFICATI%20PER%20SERVIZI%20SOAP" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F09%2Fspring-boot-configurare-proxy-e-certificati-per-servizi-soap%2F&amp;linkname=SPRING-BOOT%20%E2%80%93%20CONFIGURARE%20PROXY%20%20e%20CERTIFICATI%20PER%20SERVIZI%20SOAP" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F09%2Fspring-boot-configurare-proxy-e-certificati-per-servizi-soap%2F&amp;linkname=SPRING-BOOT%20%E2%80%93%20CONFIGURARE%20PROXY%20%20e%20CERTIFICATI%20PER%20SERVIZI%20SOAP" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F09%2Fspring-boot-configurare-proxy-e-certificati-per-servizi-soap%2F&amp;linkname=SPRING-BOOT%20%E2%80%93%20CONFIGURARE%20PROXY%20%20e%20CERTIFICATI%20PER%20SERVIZI%20SOAP" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F09%2Fspring-boot-configurare-proxy-e-certificati-per-servizi-soap%2F&amp;linkname=SPRING-BOOT%20%E2%80%93%20CONFIGURARE%20PROXY%20%20e%20CERTIFICATI%20PER%20SERVIZI%20SOAP" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F09%2Fspring-boot-configurare-proxy-e-certificati-per-servizi-soap%2F&#038;title=SPRING-BOOT%20%E2%80%93%20CONFIGURARE%20PROXY%20%20e%20CERTIFICATI%20PER%20SERVIZI%20SOAP" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2020/09/spring-boot-configurare-proxy-e-certificati-per-servizi-soap/" data-a2a-title="SPRING-BOOT – CONFIGURARE PROXY  e CERTIFICATI PER SERVIZI SOAP"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2020/09/spring-boot-configurare-proxy-e-certificati-per-servizi-soap/">SPRING-BOOT – CONFIGURARE PROXY  e CERTIFICATI PER SERVIZI SOAP</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
