From acc1448f6d80239e614ffbcff5c602a51ab2b07e Mon Sep 17 00:00:00 2001 From: johnniang Date: Mon, 29 Jul 2019 20:08:08 +0800 Subject: [PATCH] Fix #264 fatal render for rss --- .../controller/content/ContentFeedController.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/run/halo/app/controller/content/ContentFeedController.java b/src/main/java/run/halo/app/controller/content/ContentFeedController.java index 94879bea9..13b790130 100644 --- a/src/main/java/run/halo/app/controller/content/ContentFeedController.java +++ b/src/main/java/run/halo/app/controller/content/ContentFeedController.java @@ -2,6 +2,7 @@ package run.halo.app.controller.content; import freemarker.template.Template; import freemarker.template.TemplateException; +import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -22,6 +23,9 @@ import run.halo.app.service.OptionService; import run.halo.app.service.PostService; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.List; import static org.springframework.data.domain.Sort.Direction.DESC; @@ -30,6 +34,7 @@ import static org.springframework.data.domain.Sort.Direction.DESC; * @author ryanwang * @date : 2019-03-21 */ +@Slf4j @Controller public class ContentFeedController { @@ -144,6 +149,14 @@ public class ContentFeedController { private List buildPosts(@NonNull Pageable pageable) { Page postPage = postService.pageBy(PostStatus.PUBLISHED, pageable); Page posts = postService.convertToListVo(postPage); + posts.getContent().forEach(postListVO -> { + try { + // Encode post url + postListVO.setUrl(URLEncoder.encode(postListVO.getUrl(), StandardCharsets.UTF_8.name())); + } catch (UnsupportedEncodingException e) { + log.warn("Failed to encode url: " + postListVO.getUrl(), e); + } + }); return posts.getContent(); } }