Skip to content

Commit

Permalink
Fix corrupted saml2 metadata when special characters are present
Browse files Browse the repository at this point in the history
Closes gh-13776
  • Loading branch information
Jannick Weisshaupt authored and marcusdacoregio committed Sep 25, 2023
1 parent ac04c2e commit b67218c
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ private void writeMetadataToResponse(HttpServletResponse response, String regist
String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.name());
String format = "attachment; filename=\"%s\"; filename*=UTF-8''%s";
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, String.format(format, fileName, encodedFileName));
response.setContentLength(metadata.length());
response.setContentLength(metadata.getBytes(StandardCharsets.UTF_8).length);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.getWriter().write(metadata);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ public void doFilterWhenCharacterEncodingThenEncodeSpecialCharactersCorrectly()
this.filter.doFilter(this.request, this.response, this.chain);
assertThat(this.response.getCharacterEncoding()).isEqualTo(StandardCharsets.UTF_8.name());
assertThat(this.response.getContentAsString(StandardCharsets.UTF_8)).isEqualTo(generatedMetadata);
assertThat(this.response.getContentLength()).isEqualTo(
generatedMetadata.getBytes(StandardCharsets.UTF_8).length);
}

@Test
Expand Down

0 comments on commit b67218c

Please sign in to comment.