I have a spring-boot backend and wanted to create a SSE endpoint, sample:
@CrossOrigin(origins = "http://localhost:4200") // Angular Dev-Server@GetMapping(path = "/stream-flux", produces = MediaType.TEXT_EVENT_STREAM_VALUE)public Flux<String> streamFlux() { return Flux.interval(Duration.ofSeconds(1)) .map(sequence -> "data: Flux - " + LocalTime.now().toString() +"\n\n") .doOnSubscribe(subscription -> { System.out.println("SSE-Stream started."); }) .doOnNext(value -> { System.out.println("SSE-Value sent: " + value); }) .doOnError(error -> { System.out.println("SSE-Error: " + error.getMessage()); }) .doOnComplete(() -> { System.out.println("SSE-Stream complete."); }); }
Now, this example works perfect with an http-call (and the respective spring-server settings), tested with CURL.
curl -v http://localhost:8080/stream-flux
But when I wanted to switch to https (of course with the right spring-boot server settings)
tested with the following call:
curl -k -v https://localhost:<ssl-port>/stream-flux
The values from the event doesn't come at all with https.I am using a self-signed certificate.
And the CURL-answer is confusing to me:
* schannel: remote party requests renegotiation* schannel: renegotiating SSL/TLS connection* schannel: SSL/TLS connection renegotiated* Request completely sent off
Any approach to tackling this issue is highly appreciated.