|
17 | 17 | *******************************************************************************/ |
18 | 18 | package de.symeda.sormas.ui.action; |
19 | 19 |
|
| 20 | +import org.jsoup.Jsoup; |
| 21 | +import org.jsoup.safety.Whitelist; |
| 22 | + |
20 | 23 | import com.google.common.base.MoreObjects; |
21 | 24 | import com.google.common.base.Strings; |
22 | 25 | import com.vaadin.icons.VaadinIcons; |
|
37 | 40 | import de.symeda.sormas.ui.utils.ButtonHelper; |
38 | 41 | import de.symeda.sormas.ui.utils.CssStyles; |
39 | 42 | import de.symeda.sormas.ui.utils.DateFormatHelper; |
40 | | -import org.apache.commons.text.StringEscapeUtils; |
41 | 43 |
|
42 | 44 | @SuppressWarnings("serial") |
43 | 45 | public class ActionListEntry extends HorizontalLayout { |
@@ -78,11 +80,15 @@ public ActionListEntry(ActionDto action) { |
78 | 80 | descReplyLayout.addStyleName(CssStyles.RICH_TEXT_CONTENT_CONTAINER); |
79 | 81 | withContentLayout.addComponents(descReplyLayout); |
80 | 82 |
|
81 | | - Label description = new Label(StringEscapeUtils.escapeHtml4(action.getDescription()), ContentMode.HTML); |
| 83 | + Whitelist whitelist = Whitelist.relaxed(); |
| 84 | + whitelist.addTags("hr", "font"); |
| 85 | + whitelist.addAttributes("font", "size", "face", "color"); |
| 86 | + whitelist.addAttributes("div", "align"); |
| 87 | + Label description = new Label(Jsoup.clean(action.getDescription(), whitelist), ContentMode.HTML); |
82 | 88 | description.setWidth(100, Unit.PERCENTAGE); |
83 | 89 | descReplyLayout.addComponent(description); |
84 | 90 | if (!Strings.isNullOrEmpty(action.getReply())) { |
85 | | - Label replyLabel = new Label(StringEscapeUtils.escapeHtml4(action.getReply()), ContentMode.HTML); |
| 91 | + Label replyLabel = new Label(Jsoup.clean(action.getReply(), whitelist), ContentMode.HTML); |
86 | 92 | replyLabel.setWidth(100, Unit.PERCENTAGE); |
87 | 93 | replyLabel.addStyleName(CssStyles.REPLY); |
88 | 94 | descReplyLayout.addComponent(replyLabel); |
|
0 commit comments