diff --git a/kernel/kernel-impl/src/main/java/org/sakaiproject/util/impl/LinkMigrationHelperImpl.java b/kernel/kernel-impl/src/main/java/org/sakaiproject/util/impl/LinkMigrationHelperImpl.java index 22d69fc45bfa..017f12234952 100644 --- a/kernel/kernel-impl/src/main/java/org/sakaiproject/util/impl/LinkMigrationHelperImpl.java +++ b/kernel/kernel-impl/src/main/java/org/sakaiproject/util/impl/LinkMigrationHelperImpl.java @@ -36,8 +36,9 @@ @Slf4j public class LinkMigrationHelperImpl implements LinkMigrationHelper { - private static final String ESCAPED_SPACE= "%"+"20"; - private static final String[] shortenerDomainsToExpand = {"/x/", "bit.ly"}; + private static final String ESCAPED_SPACE = "%"+"20"; + private static final String[] ENCODED_IMAGE = {"data:image"}; + private static final String[] SHORTENER_STRINGS = {"/x/", "bit.ly"}; private ServerConfigurationService serverConfigurationService; @@ -192,8 +193,8 @@ private String expandShortenedUrls(String msgBody){ } for(String reference : references){ - //If doesn't contain the prefix /x/, should ignore the URL. - if(referenceContainsShortenerDomains(reference)){ + //If doesn't contain the prefix /x/ or is an encoded image, should ignore the URL. + if(!referenceContainsEncodedImage(reference) && referenceContainsShortenerDomains(reference)){ String longUrl = this.expandShortenedUrl(reference); replacedBody = StringUtils.replace(replacedBody, reference, longUrl); } @@ -202,8 +203,12 @@ private String expandShortenedUrls(String msgBody){ return replacedBody; } + private boolean referenceContainsEncodedImage(String reference) { + return Arrays.stream(ENCODED_IMAGE).anyMatch(reference::contains); + } + private boolean referenceContainsShortenerDomains(String reference) { - return Arrays.stream(shortenerDomainsToExpand).anyMatch(reference::contains); + return Arrays.stream(SHORTENER_STRINGS).anyMatch(reference::contains); } private String expandShortenedUrl(String shortenedUrl){