From 9c0679b1f4567d705f4b0fda873a65d75fe36f1c Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 28 Apr 2016 10:25:29 +0100 Subject: [PATCH] Add support for spring.rabbitmq.ssl.algorithm Rabbit client 3.6.* uses TLSv1.1 as the default algorithm which many brokers are deisabling these days. Spring AMQP supports changing the algorithm by name, so this is just a pass thru for that. --- .../amqp/RabbitAutoConfiguration.java | 3 +++ .../boot/autoconfigure/amqp/RabbitProperties.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java index 0e611cba171..c58ed0eb686 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java @@ -119,6 +119,9 @@ public class RabbitAutoConfiguration { RabbitProperties.Ssl ssl = config.getSsl(); if (ssl.isEnabled()) { factory.setUseSSL(true); + if (ssl.getAlgorithm() != null) { + factory.setSslAlgorithm(ssl.getAlgorithm()); + } factory.setKeyStore(ssl.getKeyStore()); factory.setKeyStorePassphrase(ssl.getKeyStorePassword()); factory.setTrustStore(ssl.getTrustStore()); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java index fc25f2952c2..60927485a73 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java @@ -217,6 +217,12 @@ public class RabbitProperties { */ private String trustStorePassword; + /** + * The SSL algorithm to use (e.g. TLSv1.1). Default is set automatically by the + * rabbit client library. + */ + private String algorithm; + public boolean isEnabled() { return this.enabled; } @@ -257,6 +263,14 @@ public class RabbitProperties { this.trustStorePassword = trustStorePassword; } + public String getAlgorithm() { + return this.algorithm; + } + + public void setAlgorithm(String sslAlgorithm) { + this.algorithm = sslAlgorithm; + } + } public static class Listener {