Skip to content

Commit 522c48b

Browse files
authored
Merge Add Missing OnCommitedResponseWrapper Header Overrides
Add Missing OnCommitedResponseWrapper Header Overrides
2 parents bec25ed + 1dae9aa commit 522c48b

2 files changed

Lines changed: 56 additions & 1 deletion

File tree

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

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,38 @@ public OnCommittedResponseWrapper(HttpServletResponse response) {
5858

5959
@Override
6060
public void addHeader(String name, String value) {
61+
checkContentLengthHeader(name, value);
62+
super.addHeader(name, value);
63+
}
64+
65+
@Override
66+
public void addIntHeader(String name, int value) {
67+
checkContentLengthHeader(name, value);
68+
super.addIntHeader(name, value);
69+
}
70+
71+
@Override
72+
public void setHeader(String name, String value) {
73+
checkContentLengthHeader(name, value);
74+
super.setHeader(name, value);
75+
}
76+
77+
@Override
78+
public void setIntHeader(String name, int value) {
79+
checkContentLengthHeader(name, value);
80+
super.setIntHeader(name, value);
81+
}
82+
83+
private void checkContentLengthHeader(String name, int value) {
84+
if ("Content-Length".equalsIgnoreCase(name)) {
85+
setContentLength(value);
86+
}
87+
}
88+
89+
private void checkContentLengthHeader(String name, String value) {
6190
if ("Content-Length".equalsIgnoreCase(name)) {
6291
setContentLength(Long.parseLong(value));
6392
}
64-
super.addHeader(name, value);
6593
}
6694

6795
@Override

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,6 +1006,33 @@ public void addHeaderContentLengthPrintWriterWriteStringCommits() throws Excepti
10061006
assertThat(this.committed).isTrue();
10071007
}
10081008

1009+
@Test
1010+
public void addIntHeaderContentLengthPrintWriterWriteStringCommits() throws Exception {
1011+
givenGetWriterThenReturn();
1012+
int expected = 1234;
1013+
this.response.addIntHeader("Content-Length", String.valueOf(expected).length());
1014+
this.response.getWriter().write(expected);
1015+
assertThat(this.committed).isTrue();
1016+
}
1017+
1018+
@Test
1019+
public void setHeaderContentLengthPrintWriterWriteStringCommits() throws Exception {
1020+
givenGetWriterThenReturn();
1021+
int expected = 1234;
1022+
this.response.setHeader("Content-Length", String.valueOf(String.valueOf(expected).length()));
1023+
this.response.getWriter().write(expected);
1024+
assertThat(this.committed).isTrue();
1025+
}
1026+
1027+
@Test
1028+
public void setIntHeaderContentLengthPrintWriterWriteStringCommits() throws Exception {
1029+
givenGetWriterThenReturn();
1030+
int expected = 1234;
1031+
this.response.setIntHeader("Content-Length", String.valueOf(expected).length());
1032+
this.response.getWriter().write(expected);
1033+
assertThat(this.committed).isTrue();
1034+
}
1035+
10091036
@Test
10101037
public void bufferSizePrintWriterWriteCommits() throws Exception {
10111038
givenGetWriterThenReturn();

0 commit comments

Comments
 (0)