From e33ce1b9871e5d42f678e1c50be615ad676a2153 Mon Sep 17 00:00:00 2001 From: lolodomo Date: Mon, 20 Feb 2023 20:32:09 +0100 Subject: [PATCH] [linky] Call createHttpClient with a SslContextFactory parameter (#14464) Signed-off-by: Laurent Garnier --- .../linky/internal/LinkyHandlerFactory.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/bundles/org.openhab.binding.linky/src/main/java/org/openhab/binding/linky/internal/LinkyHandlerFactory.java b/bundles/org.openhab.binding.linky/src/main/java/org/openhab/binding/linky/internal/LinkyHandlerFactory.java index 2da48f935..5ceaeb7b3 100644 --- a/bundles/org.openhab.binding.linky/src/main/java/org/openhab/binding/linky/internal/LinkyHandlerFactory.java +++ b/bundles/org.openhab.binding.linky/src/main/java/org/openhab/binding/linky/internal/LinkyHandlerFactory.java @@ -25,6 +25,7 @@ import javax.net.ssl.TrustManager; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.util.ssl.SslContextFactory; import org.openhab.binding.linky.internal.handler.LinkyHandler; import org.openhab.core.i18n.LocaleProvider; import org.openhab.core.io.net.http.HttpClientFactory; @@ -68,25 +69,27 @@ public class LinkyHandlerFactory extends BaseThingHandlerFactory { public LinkyHandlerFactory(final @Reference LocaleProvider localeProvider, final @Reference HttpClientFactory httpClientFactory) { this.localeProvider = localeProvider; - this.httpClient = httpClientFactory.createHttpClient(LinkyBindingConstants.BINDING_ID); - } - - @Override - protected void activate(ComponentContext componentContext) { - super.activate(componentContext); - httpClient.setFollowRedirects(false); - httpClient.setRequestBufferSize(REQUEST_BUFFER_SIZE); - + SslContextFactory sslContextFactory = new SslContextFactory.Client(); try { SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, new TrustManager[] { TrustAllTrustManager.getInstance() }, null); - httpClient.getSslContextFactory().setSslContext(sslContext); - httpClient.start(); + sslContextFactory.setSslContext(sslContext); } catch (NoSuchAlgorithmException e) { logger.warn("An exception occurred while requesting the SSL encryption algorithm : '{}'", e.getMessage(), e); } catch (KeyManagementException e) { logger.warn("An exception occurred while initialising the SSL context : '{}'", e.getMessage(), e); + } + this.httpClient = httpClientFactory.createHttpClient(LinkyBindingConstants.BINDING_ID, sslContextFactory); + httpClient.setFollowRedirects(false); + httpClient.setRequestBufferSize(REQUEST_BUFFER_SIZE); + } + + @Override + protected void activate(ComponentContext componentContext) { + super.activate(componentContext); + try { + httpClient.start(); } catch (Exception e) { logger.warn("Unable to start Jetty HttpClient {}", e.getMessage()); }