Commit a230e5838b8db0f42136e609020653183f60b0a6
1 parent
b3dc4414
Use single SSL context for mqtt transport
Showing
1 changed file
with
13 additions
and
13 deletions
... | ... | @@ -68,16 +68,23 @@ public class MqttSslHandlerProvider { |
68 | 68 | @Autowired |
69 | 69 | private TransportService transportService; |
70 | 70 | |
71 | - private SSLEngine sslEngine; | |
71 | + private SSLContext sslContext; | |
72 | 72 | |
73 | 73 | public SslHandler getSslHandler() { |
74 | - if (sslEngine == null) { | |
75 | - sslEngine = createSslEngine(); | |
74 | + if (sslContext == null) { | |
75 | + sslContext = createSslContext(); | |
76 | 76 | } |
77 | + SSLEngine sslEngine = sslContext.createSSLEngine(); | |
78 | + sslEngine.setUseClientMode(false); | |
79 | + sslEngine.setNeedClientAuth(false); | |
80 | + sslEngine.setWantClientAuth(true); | |
81 | + sslEngine.setEnabledProtocols(sslEngine.getSupportedProtocols()); | |
82 | + sslEngine.setEnabledCipherSuites(sslEngine.getSupportedCipherSuites()); | |
83 | + sslEngine.setEnableSessionCreation(true); | |
77 | 84 | return new SslHandler(sslEngine); |
78 | 85 | } |
79 | 86 | |
80 | - private SSLEngine createSslEngine() { | |
87 | + private SSLContext createSslContext() { | |
81 | 88 | try { |
82 | 89 | TrustManagerFactory tmFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); |
83 | 90 | KeyStore trustStore = KeyStore.getInstance(keyStoreType); |
... | ... | @@ -101,17 +108,10 @@ public class MqttSslHandlerProvider { |
101 | 108 | } |
102 | 109 | SSLContext sslContext = SSLContext.getInstance(sslProtocol); |
103 | 110 | sslContext.init(km, tm, null); |
104 | - SSLEngine sslEngine = sslContext.createSSLEngine(); | |
105 | - sslEngine.setUseClientMode(false); | |
106 | - sslEngine.setNeedClientAuth(false); | |
107 | - sslEngine.setWantClientAuth(true); | |
108 | - sslEngine.setEnabledProtocols(sslEngine.getSupportedProtocols()); | |
109 | - sslEngine.setEnabledCipherSuites(sslEngine.getSupportedCipherSuites()); | |
110 | - sslEngine.setEnableSessionCreation(true); | |
111 | - return sslEngine; | |
111 | + return sslContext; | |
112 | 112 | } catch (Exception e) { |
113 | 113 | log.error("Unable to set up SSL context. Reason: " + e.getMessage(), e); |
114 | - throw new RuntimeException("Failed to get SSL engine", e); | |
114 | + throw new RuntimeException("Failed to get SSL context", e); | |
115 | 115 | } |
116 | 116 | } |
117 | 117 | ... | ... |