From a9acf9e3e5555dc60922fee4b2060a924a98f136 Mon Sep 17 00:00:00 2001
From: Ghazi Triki <ghazi.triki@riadvice.tn>
Date: Thu, 29 Sep 2016 18:47:11 +0100
Subject: [PATCH] Use apache commongs FilenameUtils.getExtension to extract the
 extension from the file name.

---
 .../bigbluebutton/web/controllers/ApiController.groovy    | 8 +++++---
 .../web/controllers/PresentationController.groovy         | 4 +++-
 .../src/java/org/bigbluebutton/api/Util.java              | 4 ----
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
index 23bc08cc01..a22341083e 100755
--- a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
+++ b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
@@ -19,6 +19,7 @@
 package org.bigbluebutton.web.controllers
 
 import javax.servlet.ServletRequest;
+
 import java.net.URI;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -28,7 +29,9 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.Map;
+
 import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang.RandomStringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.bigbluebutton.api.domain.Config;
@@ -2057,9 +2060,8 @@ class ApiController {
     }
   }
 
-
   def processDocumentFromRawBytes(bytes, presFilename, meetingId) {
-    def filenameExt = Util.getFilenameExt(presFilename);
+    def filenameExt = FilenameUtils.getExtension(presFilename);
     String presentationDir = presentationService.getPresentationDir()
     def presId = Util.generatePresentationId(presFilename)
     File uploadDir = Util.createPresentationDirectory(meetingId, presentationDir, presId)
@@ -2080,7 +2082,7 @@ class ApiController {
   def downloadAndProcessDocument(address, meetingId) {
     log.debug("ApiController#downloadAndProcessDocument(${address}, ${meetingId})");
     String presFilename = address.tokenize("/")[-1];
-    def filenameExt = presDownloadService.getFilenameExt(presFilename);
+    def filenameExt = FilenameUtils.getExtension(presFilename);
     String presentationDir = presentationService.getPresentationDir()
 
     def presId = presDownloadService.generatePresentationId(presFilename)
diff --git a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy
index 89e8682005..5fbe9af222 100755
--- a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy
+++ b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy
@@ -19,6 +19,8 @@
 package org.bigbluebutton.web.controllers
 
 import grails.converters.*
+
+import org.apache.commons.io.FilenameUtils;
 import org.bigbluebutton.web.services.PresentationService
 import org.bigbluebutton.presentation.UploadedPresentation
 import org.bigbluebutton.api.MeetingService;
@@ -48,7 +50,7 @@ class PresentationController {
     if (file && !file.empty) {
       flash.message = 'Your file has been uploaded'
       def presFilename = file.getOriginalFilename()
-      def filenameExt = Util.getFilenameExt(presFilename);
+      def filenameExt = FilenameUtils.getExtension(presFilename);
       String presentationDir = presentationService.getPresentationDir()
       def presId = Util.generatePresentationId(presFilename)
       File uploadDir = Util.createPresentationDirectory(meetingId, presentationDir, presId) 
diff --git a/bigbluebutton-web/src/java/org/bigbluebutton/api/Util.java b/bigbluebutton-web/src/java/org/bigbluebutton/api/Util.java
index a8bbf7cff5..03fa29f24d 100755
--- a/bigbluebutton-web/src/java/org/bigbluebutton/api/Util.java
+++ b/bigbluebutton-web/src/java/org/bigbluebutton/api/Util.java
@@ -10,10 +10,6 @@ public final class Util {
 		return DigestUtils.shaHex(name) + "-" + timestamp;
 	}
 	
-	public static String getFilenameExt(String filename) {
-		return filename.substring(filename.lastIndexOf("."));
-	}
-	
 	public static String createNewFilename(String presId, String fileExt) {
 		return presId + fileExt;
 	}
-- 
GitLab