diff --git a/avaje-jex/src/main/java/io/avaje/jex/http/sse/SseHandler.java b/avaje-jex/src/main/java/io/avaje/jex/http/sse/SseHandler.java index 4ceea3b4..b2ec082f 100644 --- a/avaje-jex/src/main/java/io/avaje/jex/http/sse/SseHandler.java +++ b/avaje-jex/src/main/java/io/avaje/jex/http/sse/SseHandler.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.io.UncheckedIOException; +import java.util.Optional; import java.util.function.Consumer; import io.avaje.jex.core.Constants; @@ -22,9 +23,13 @@ final class SseHandler implements ExchangeHandler { @Override public void handle(Context ctx) throws Exception { - if (!TEXT_EVENT_STREAM.equals(ctx.header(Constants.ACCEPT))) { - throw new BadRequestException("SSE Requests must have an 'Accept: text/event-stream' header"); - } + Optional.ofNullable(ctx.header(Constants.ACCEPT)) + .filter(s -> s.contains(TEXT_EVENT_STREAM)) + .orElseThrow( + () -> + new BadRequestException( + "SSE Requests must have an 'Accept: text/event-stream' header")); + final var exchange = ctx.exchange(); final var headers = exchange.getResponseHeaders(); headers.add(Constants.CONTENT_TYPE, TEXT_EVENT_STREAM);