diff --git a/office-plugin/src/main/java/org/artofsolving/jodconverter/office/OfficeUtils.java b/office-plugin/src/main/java/org/artofsolving/jodconverter/office/OfficeUtils.java index b413ffec..59354546 100644 --- a/office-plugin/src/main/java/org/artofsolving/jodconverter/office/OfficeUtils.java +++ b/office-plugin/src/main/java/org/artofsolving/jodconverter/office/OfficeUtils.java @@ -81,7 +81,7 @@ public class OfficeUtils { } if (PlatformUtils.isWindows()) { // %ProgramFiles(x86)% on 64-bit machines; %ProgramFiles% on 32-bit ones - String homePath = ConfigUtils.getHomePath(); + String officePluginPath = ConfigUtils.getOfficePluginPath(); String programFiles = System.getenv("ProgramFiles(x86)"); if (programFiles == null) { programFiles = System.getenv("ProgramFiles"); @@ -89,7 +89,7 @@ public class OfficeUtils { return findOfficeHome( programFiles + File.separator + "OpenOffice 4", programFiles + File.separator + "LibreOffice 4", - homePath + File.separator + "office" + officePluginPath + File.separator + "windows-office" ); } else if (PlatformUtils.isMac()) { return findOfficeHome( diff --git a/office-plugin/src/main/java/org/artofsolving/jodconverter/util/ConfigUtils.java b/office-plugin/src/main/java/org/artofsolving/jodconverter/util/ConfigUtils.java index 2443d611..8a808808 100644 --- a/office-plugin/src/main/java/org/artofsolving/jodconverter/util/ConfigUtils.java +++ b/office-plugin/src/main/java/org/artofsolving/jodconverter/util/ConfigUtils.java @@ -9,6 +9,7 @@ import java.io.File; public class ConfigUtils { private static final String MAIN_DIRECTORY_NAME = "server"; + private static final String OFFICE_PLUGIN_NAME = "office-plugin"; public static String getHomePath() { String userDir = System.getenv("KKFILEVIEW_BIN_FOLDER"); @@ -28,6 +29,23 @@ public class ConfigUtils { return userDir; } + + public static String getOfficePluginPath() { + String userDir = System.getenv("KKFILEVIEW_BIN_FOLDER"); + if (userDir == null) { + userDir = System.getProperty("user.dir"); + } + if (userDir.endsWith("bin")) { + userDir = userDir.substring(0, userDir.length() - 4); + } else { + String separator = File.separator; + if (!userDir.contains(OFFICE_PLUGIN_NAME)) { + userDir = userDir + separator + OFFICE_PLUGIN_NAME; + } + } + return userDir; + } + public static String getCustomizedConfigPath() { String homePath = getHomePath(); String separator = java.io.File.separator; diff --git a/server/src/main/java/cn/keking/web/filter/TrustHostFilter.java b/server/src/main/java/cn/keking/web/filter/TrustHostFilter.java index 65bc564f..5d09feac 100644 --- a/server/src/main/java/cn/keking/web/filter/TrustHostFilter.java +++ b/server/src/main/java/cn/keking/web/filter/TrustHostFilter.java @@ -3,6 +3,7 @@ package cn.keking.web.filter; import cn.keking.config.ConfigConstants; import org.apache.commons.lang3.StringUtils; import org.springframework.core.io.ClassPathResource; +import org.springframework.util.Base64Utils; import org.springframework.util.FileCopyUtils; import javax.servlet.*;