@@ -86,9 +86,9 @@ public class ReceiverVerticle extends AbstractVerticle implements Handler<HttpSe
86
86
87
87
private final IngressRequestHandler ingressRequestHandler ;
88
88
private final ReceiverEnv env ;
89
- private int oidcDiscoveryCallbackId ;
90
89
91
90
private AuthHandler authHandler ;
91
+ private final Handler <HttpServerRequest > handler ;
92
92
private HttpServer httpServer ;
93
93
private HttpServer httpsServer ;
94
94
private MessageConsumer <Object > messageConsumer ;
@@ -124,6 +124,9 @@ public ReceiverVerticle(
124
124
125
125
this .authVerifier = new AuthVerifierImpl (oidcDiscoveryConfigListener );
126
126
this .authHandler = new AuthHandler (this .authVerifier );
127
+
128
+ this .handler = new ProbeHandler (
129
+ env .getLivenessProbePath (), env .getReadinessProbePath (), new MethodNotAllowedHandler (this ));
127
130
}
128
131
129
132
public HttpServerOptions getHttpsServerOptions () {
@@ -155,9 +158,6 @@ public void start(final Promise<Void> startPromise) {
155
158
156
159
authVerifier .start (vertx );
157
160
158
- final var handler = new ProbeHandler (
159
- env .getLivenessProbePath (), env .getReadinessProbePath (), new MethodNotAllowedHandler (this ));
160
-
161
161
if (this .httpsServer != null ) {
162
162
CompositeFuture .all (
163
163
this .httpServer
@@ -252,15 +252,31 @@ public void updateServerConfig() {
252
252
.setCertValue (Buffer .buffer (java .nio .file .Files .readString (this .tlsCrtFile .toPath ())))
253
253
.setKeyValue (Buffer .buffer (java .nio .file .Files .readString (this .tlsKeyFile .toPath ())));
254
254
255
- httpsServer
256
- .updateSSLOptions (new SSLOptions ().setKeyCertOptions (keyCertOptions ))
257
- .onSuccess (v -> logger .info ("Succeeded to update TLS key pair" ))
258
- .onFailure (
259
- e -> logger .error ("Failed to update TLS key pair while executing updateSSLOptions" , e ));
260
-
255
+ if (httpsServer == null ) {
256
+ // receiver was started without an initialized HTTPS server --> initialize and start it now
257
+ httpsServerOptions .setSsl (true ).setPemKeyCertOptions (keyCertOptions );
258
+ httpsServer = vertx .createHttpServer (httpsServerOptions );
259
+
260
+ this .httpsServer
261
+ .requestHandler (handler )
262
+ .exceptionHandler (e -> logger .error ("Socket error in HTTPS server" , e ))
263
+ .listen (this .httpsServerOptions .getPort (), this .httpsServerOptions .getHost ());
264
+ } else {
265
+ httpsServer
266
+ .updateSSLOptions (new SSLOptions ().setKeyCertOptions (keyCertOptions ))
267
+ .onSuccess (v -> logger .info ("Succeeded to update TLS key pair" ))
268
+ .onFailure (e ->
269
+ logger .error ("Failed to update TLS key pair while executing updateSSLOptions" , e ));
270
+ }
261
271
} catch (IOException e ) {
262
272
logger .error ("Failed to read file {}" , tlsCrtFile .toPath (), e );
263
273
}
274
+ } else {
275
+ if (httpsServer != null ) {
276
+ // We had a running HTTPS server before and TLS files were removed now --> shutdown HTTPS server again
277
+ httpsServer .close ();
278
+ httpsServer = null ;
279
+ }
264
280
}
265
281
}
266
282
}
0 commit comments