Remove only leading space for SSE data
Prior to this commit, all white space was trimmed from Server Sent Event data. After this commit, only a leading space is removed (if present). Closes gh-27473
This commit is contained in:
parent
85bdea6f47
commit
3be2b32e21
|
|
@ -147,7 +147,13 @@ public class ServerSentEventHttpMessageReader implements HttpMessageReader<Objec
|
|||
for (String line : lines) {
|
||||
if (line.startsWith("data:")) {
|
||||
data = (data != null ? data : new StringBuilder());
|
||||
data.append(line.substring(5).trim()).append('\n');
|
||||
if (line.charAt(5) != ' ') {
|
||||
data.append(line, 5, line.length());
|
||||
}
|
||||
else {
|
||||
data.append(line, 6, line.length());
|
||||
}
|
||||
data.append('\n');
|
||||
}
|
||||
if (shouldWrap) {
|
||||
if (line.startsWith("id:")) {
|
||||
|
|
|
|||
|
|
@ -138,6 +138,20 @@ public class ServerSentEventHttpMessageReaderTests extends AbstractLeakCheckingT
|
|||
.verify();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void trimWhitespace() {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.post("/")
|
||||
.body(Mono.just(stringBuffer("data: \tfoo \ndata:bar\t\n\n")));
|
||||
|
||||
Flux<String> data = reader.read(ResolvableType.forClass(String.class),
|
||||
request, Collections.emptyMap()).cast(String.class);
|
||||
|
||||
StepVerifier.create(data)
|
||||
.expectNext("\tfoo \nbar\t")
|
||||
.expectComplete()
|
||||
.verify();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void readPojo() {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.post("/")
|
||||
|
|
|
|||
Loading…
Reference in New Issue