From 6ffa88b911578a4da72720436f9bbd8a3f381a53 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Wed, 6 Jan 2021 15:10:28 +0100
Subject: [PATCH] OO-5166: proper encoding of non-ASCII character of slides
 names

---
 .../bigbluebutton/manager/BigBlueButtonManagerImpl.java     | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/modules/bigbluebutton/manager/BigBlueButtonManagerImpl.java b/src/main/java/org/olat/modules/bigbluebutton/manager/BigBlueButtonManagerImpl.java
index 6b8408d1c01..f7a9274f153 100644
--- a/src/main/java/org/olat/modules/bigbluebutton/manager/BigBlueButtonManagerImpl.java
+++ b/src/main/java/org/olat/modules/bigbluebutton/manager/BigBlueButtonManagerImpl.java
@@ -114,6 +114,7 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
+import org.springframework.web.util.UriUtils;
 import org.w3c.dom.Document;
 
 /**
@@ -1068,12 +1069,13 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager,
 	}
 	
 	private String slidesDocument(String url, List<VFSLeaf> slides) {
-		StringBuilder sb = new StringBuilder();
+		StringBuilder sb = new StringBuilder(512);
 		sb.append("<?xml version='1.0' encoding='UTF-8'?>")
 		  .append("<modules><module name='presentation'>");
 		
 		for(VFSLeaf slide:slides) {
-			sb.append("<document url='").append(url).append(slide.getName()).append("' />");
+			String encodedFilename = UriUtils.encodePath(slide.getName(), StandardCharsets.UTF_8);
+			sb.append("<document url='").append(url).append(encodedFilename).append("' filename='").append(slide.getName()).append("' />");
 		}
 		sb.append("</module></modules>");
 		return sb.toString();
-- 
GitLab