Skip to content

Commit f28fe2d

Browse files
danielwegenerjzheaux
authored andcommitted
Add OnCommittedResponseWrapper.setContentLengthLong
Add setContentLengthLong tracking to OnCommittedResponseWrapper in order to detect commits on servlets that use setContentLengthLong to announce the entity size they are about to write (as used in the Apache Tomcat's DefaultServlet). Fixes gh-7261
1 parent 5114190 commit f28fe2d

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

web/src/main/java/org/springframework/security/web/util/OnCommittedResponseWrapper.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ public void setContentLength(int len) {
6969
super.setContentLength(len);
7070
}
7171

72+
@Override
73+
public void setContentLengthLong(long len) {
74+
setContentLength(len);
75+
super.setContentLengthLong(len);
76+
}
77+
7278
private void setContentLength(long len) {
7379
this.contentLength = len;
7480
checkContentLength(0);

web/src/test/java/org/springframework/security/web/util/OnCommittedResponseWrapperTests.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1101,6 +1101,17 @@ public void contentLengthOutputStreamWriteStringCommits() throws IOException {
11011101
assertThat(committed).isTrue();
11021102
}
11031103

1104+
// gh-7261
1105+
@Test
1106+
public void contentLengthLongOutputStreamWriteStringCommits() throws IOException {
1107+
String body = "something";
1108+
response.setContentLengthLong(body.length());
1109+
1110+
response.getOutputStream().print(body);
1111+
1112+
assertThat(committed).isTrue();
1113+
}
1114+
11041115
@Test
11051116
public void addHeaderContentLengthPrintWriterWriteStringCommits() throws Exception {
11061117
int expected = 1234;

0 commit comments

Comments
 (0)