Skip to content

Commit

Permalink
Merge pull request #7 from virtualidentityag/VIC-573
Browse files Browse the repository at this point in the history
input sanitizer fix to allow images
  • Loading branch information
mebo4b authored Apr 20, 2022
2 parents 495255e + 52300af commit 233cf6e
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ public String sanitizeAllowingFormattingAndLinks(String input) {
.allowElements("a")
.allowAttributes("href","target")
.onElements("a")
.allowElements("img")
.allowAttributes("src", "width", "height")
.onElements("img")
.toFactory();
return sanitizer.sanitize(input);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
class TenantInputSanitizerTest {

private static final String LINK_CONTENT = "<a href=\"http://onlineberatung.net\">content</a>further content";
private static final String IMAGE_CONTENT = "<img src=\"http://onlineberatung.net/images/test.png\" width=\"272\" height=\"92\" />";

@InjectMocks
TenantInputSanitizer tenantInputSanitizer;
Expand Down Expand Up @@ -55,6 +56,24 @@ void sanitize_Should_sanitizeAndAllowLinksForContentInTenantDTO() {
assertThat(sanitized.getContent().getImpressum()).contains(LINK_CONTENT);
}

@Test
void sanitize_Should_sanitizeAndAllowImageSrcForContentInTenantDTO() {
// given
EasyRandom generator = new EasyRandom();
TenantDTO tenantDTO = generator.nextObject(TenantDTO.class);
tenantDTO.getContent().setTermsAndConditions(IMAGE_CONTENT);
tenantDTO.getContent().setPrivacy(IMAGE_CONTENT);
tenantDTO.getContent().setImpressum(IMAGE_CONTENT);
TenantInputSanitizer nonMockedTenantInputSanitizer = new TenantInputSanitizer(new InputSanitizer());
// when
TenantDTO sanitized = nonMockedTenantInputSanitizer.sanitize(tenantDTO);

// then
assertThat(sanitized.getContent().getTermsAndConditions()).contains(IMAGE_CONTENT);
assertThat(sanitized.getContent().getPrivacy()).contains(IMAGE_CONTENT);
assertThat(sanitized.getContent().getImpressum()).contains(IMAGE_CONTENT);
}

private void verifyNeededSanitizationsAreCalled(TenantDTO tenantDTO) {
verify(inputSanitizer).sanitize(tenantDTO.getName());
verify(inputSanitizer).sanitize(tenantDTO.getSubdomain());
Expand Down

0 comments on commit 233cf6e

Please sign in to comment.