From d1d8ffef7ab3b7844600e6a41a26815e6ead055f Mon Sep 17 00:00:00 2001 From: kl Date: Wed, 6 Mar 2024 19:49:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E6=96=87=E4=BB=B6=20host=20=E9=BB=91=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/main/config/application.properties | 3 + .../cn/keking/config/ConfigConstants.java | 136 +++++++++++++----- .../keking/config/ConfigRefreshComponent.java | 19 +-- .../keking/web/filter/AttributeSetFilter.java | 8 +- .../cn/keking/web/filter/BaseUrlFilter.java | 2 +- .../cn/keking/web/filter/TrustHostFilter.java | 20 ++- server/src/main/resources/web/main/index.ftl | 2 +- 7 files changed, 134 insertions(+), 56 deletions(-) diff --git a/server/src/main/config/application.properties b/server/src/main/config/application.properties index a30b5c50..7de75bc8 100644 --- a/server/src/main/config/application.properties +++ b/server/src/main/config/application.properties @@ -81,6 +81,9 @@ base.url = ${KK_BASE_URL:default} #信任站点,多个用','隔开,设置了之后,会限制只能预览来自信任站点列表的文件,默认不限制 #trust.host = kkview.cn trust.host = ${KK_TRUST_HOST:default} +#不信任站点,多个用','隔开,设置了之后,会限制来自不信任站点列表的文件,默认不限制 +#not.trust.host = kkview.cn +not.trust.host= ${KK_NOT_TRUST_HOST:default} #文本类型,默认如下,可自定义添加 simText = ${KK_SIMTEXT:txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd} diff --git a/server/src/main/java/cn/keking/config/ConfigConstants.java b/server/src/main/java/cn/keking/config/ConfigConstants.java index e92121cc..19251cd2 100644 --- a/server/src/main/java/cn/keking/config/ConfigConstants.java +++ b/server/src/main/java/cn/keking/config/ConfigConstants.java @@ -16,6 +16,7 @@ import java.util.concurrent.CopyOnWriteArraySet; @Component(value = ConfigConstants.BEAN_NAME) public class ConfigConstants { public static final String BEAN_NAME = "configConstants"; + static { //pdfbox兼容低版本jdk System.setProperty("sun.java2d.cmm", "sun.java2d.cmm.kcms.KcmsServiceProvider"); @@ -35,6 +36,7 @@ public class ConfigConstants { private static String fileDir = ConfigUtils.getHomePath() + File.separator + "file" + File.separator; private static String localPreviewDir; private static CopyOnWriteArraySet trustHostSet; + private static CopyOnWriteArraySet notTrustHostSet; private static String pdfPresentationModeDisable; private static String pdfDisableEditing; private static String pdfOpenFileDisable; @@ -61,7 +63,7 @@ public class ConfigConstants { private static Boolean officeDocumentOpenPasswords; private static String cadTimeout; private static int cadThread; - private static String homePpageNumber; + private static String homePageNumber; private static String homePagination; private static String homePageSize; private static String homeSearch; @@ -74,10 +76,7 @@ public class ConfigConstants { public static final String DEFAULT_FTP_USERNAME = null; public static final String DEFAULT_FTP_PASSWORD = null; public static final String DEFAULT_FTP_CONTROL_ENCODING = "UTF-8"; - public static final String DEFAULT_BASE_URL = "default"; - public static final String DEFAULT_FILE_DIR_VALUE = "default"; - public static final String DEFAULT_LOCAL_PREVIEW_DIR_VALUE = "default"; - public static final String DEFAULT_TRUST_HOST = "default"; + public static final String DEFAULT_VALUE = "default"; public static final String DEFAULT_PDF_PRESENTATION_MODE_DISABLE = "true"; public static final String DEFAULT_PDF_OPEN_FILE_DISABLE = "true"; public static final String DEFAULT_PDF_PRINT_DISABLE = "true"; @@ -108,6 +107,7 @@ public class ConfigConstants { public static final String DEFAULT_HOME_PAGINATION = "true"; public static final String DEFAULT_HOME_PAGSIZE = "15"; public static final String DEFAULT_HOME_SEARCH = "true"; + public static Boolean isCacheEnabled() { return cacheEnabled; } @@ -172,6 +172,7 @@ public class ConfigConstants { public void setMediaConvertDisable(String mediaConvertDisable) { setMediaConvertDisableValue(mediaConvertDisable); } + public static void setMediaConvertDisableValue(String mediaConvertDisable) { ConfigConstants.mediaConvertDisable = mediaConvertDisable; } @@ -251,7 +252,7 @@ public class ConfigConstants { } public static void setFileDirValue(String fileDir) { - if (!DEFAULT_FILE_DIR_VALUE.equalsIgnoreCase(fileDir)) { + if (!DEFAULT_VALUE.equalsIgnoreCase(fileDir)) { if (!fileDir.endsWith(File.separator)) { fileDir = fileDir + File.separator; } @@ -269,7 +270,7 @@ public class ConfigConstants { } public static void setLocalPreviewDirValue(String localPreviewDir) { - if (!DEFAULT_LOCAL_PREVIEW_DIR_VALUE.equals(localPreviewDir)) { + if (!DEFAULT_VALUE.equals(localPreviewDir)) { if (!localPreviewDir.endsWith(File.separator)) { localPreviewDir = localPreviewDir + File.separator; } @@ -279,19 +280,29 @@ public class ConfigConstants { @Value("${trust.host:default}") public void setTrustHost(String trustHost) { - setTrustHostValue(trustHost); + setTrustHostSet(getHostValue(trustHost)); } - public static void setTrustHostValue(String trustHost) { - CopyOnWriteArraySet trustHostSet; - if (DEFAULT_TRUST_HOST.equalsIgnoreCase(trustHost)) { - trustHostSet = new CopyOnWriteArraySet<>(); + public static void setTrustHostValue(String trustHost){ + setTrustHostSet(getHostValue(trustHost)); + } + + @Value("${not.trust.host:default}") + public void setNotTrustHost(String notTrustHost) { + setNotTrustHostSet(getHostValue(notTrustHost)); + } + + public static void setNotTrustHostValue(String notTrustHost){ + setNotTrustHostSet(getHostValue(notTrustHost)); + } + + private static CopyOnWriteArraySet getHostValue(String trustHost) { + if (DEFAULT_VALUE.equalsIgnoreCase(trustHost)) { + return new CopyOnWriteArraySet<>(); } else { String[] trustHostArray = trustHost.toLowerCase().split(","); - trustHostSet = new CopyOnWriteArraySet<>(Arrays.asList(trustHostArray)); - setTrustHostSet(trustHostSet); + return new CopyOnWriteArraySet<>(Arrays.asList(trustHostArray)); } - setTrustHostSet(trustHostSet); } public static Set getTrustHostSet() { @@ -302,6 +313,15 @@ public class ConfigConstants { ConfigConstants.trustHostSet = trustHostSet; } + public static Set getNotTrustHostSet() { + return notTrustHostSet; + } + + public static void setNotTrustHostSet(CopyOnWriteArraySet notTrustHostSet) { + ConfigConstants.notTrustHostSet = notTrustHostSet; + } + + public static String getPdfPresentationModeDisable() { return pdfPresentationModeDisable; } @@ -323,6 +343,7 @@ public class ConfigConstants { public void setPdfOpenFileDisable(String pdfOpenFileDisable) { setPdfOpenFileDisableValue(pdfOpenFileDisable); } + public static void setPdfOpenFileDisableValue(String pdfOpenFileDisable) { ConfigConstants.pdfOpenFileDisable = pdfOpenFileDisable; } @@ -330,10 +351,12 @@ public class ConfigConstants { public static String getPdfPrintDisable() { return pdfPrintDisable; } + @Value("${pdf.print.disable:true}") public void setPdfPrintDisable(String pdfPrintDisable) { setPdfPrintDisableValue(pdfPrintDisable); } + public static void setPdfPrintDisableValue(String pdfPrintDisable) { ConfigConstants.pdfPrintDisable = pdfPrintDisable; } @@ -346,6 +369,7 @@ public class ConfigConstants { public void setPdfDownloadDisable(String pdfDownloadDisable) { setPdfDownloadDisableValue(pdfDownloadDisable); } + public static void setPdfDownloadDisableValue(String pdfDownloadDisable) { ConfigConstants.pdfDownloadDisable = pdfDownloadDisable; } @@ -353,10 +377,12 @@ public class ConfigConstants { public static String getPdfBookmarkDisable() { return pdfBookmarkDisable; } + @Value("${pdf.bookmark.disable:true}") public void setPdfBookmarkDisable(String pdfBookmarkDisable) { setPdfBookmarkDisableValue(pdfBookmarkDisable); } + public static void setPdfBookmarkDisableValue(String pdfBookmarkDisable) { ConfigConstants.pdfBookmarkDisable = pdfBookmarkDisable; } @@ -365,10 +391,12 @@ public class ConfigConstants { public static String getPdfDisableEditing() { return pdfDisableEditing; } + @Value("${pdf.disable.editing:true}") public void setpdfDisableEditing(String pdfDisableEditing) { setPdfDisableEditingValue(pdfDisableEditing); } + public static void setPdfDisableEditingValue(String pdfDisableEditing) { ConfigConstants.pdfDisableEditing = pdfDisableEditing; } @@ -376,10 +404,12 @@ public class ConfigConstants { public static String getOfficePreviewSwitchDisabled() { return officePreviewSwitchDisabled; } + @Value("${office.preview.switch.disabled:true}") public void setOfficePreviewSwitchDisabled(String officePreviewSwitchDisabled) { ConfigConstants.officePreviewSwitchDisabled = officePreviewSwitchDisabled; } + public static void setOfficePreviewSwitchDisabledValue(String officePreviewSwitchDisabled) { ConfigConstants.officePreviewSwitchDisabled = officePreviewSwitchDisabled; } @@ -414,6 +444,7 @@ public class ConfigConstants { public static String[] getProhibit() { return prohibit; } + @Value("${prohibit:exe,dll}") public void setProhibit(String prohibit) { String[] prohibitArr = prohibit.split(","); @@ -423,13 +454,16 @@ public class ConfigConstants { public static void setProhibitValue(String[] prohibit) { ConfigConstants.prohibit = prohibit; } + public static String maxSize() { return size; } + @Value("${spring.servlet.multipart.max-file-size:500MB}") public void setSize(String size) { setSizeValue(size); } + public static void setSizeValue(String size) { ConfigConstants.size = size; } @@ -437,10 +471,12 @@ public class ConfigConstants { public static String getPassword() { return password; } + @Value("${delete.password:123456}") public void setPassword(String password) { setPasswordValue(password); } + public static void setPasswordValue(String password) { ConfigConstants.password = password; } @@ -449,10 +485,12 @@ public class ConfigConstants { public static int getPdf2JpgDpi() { return pdf2JpgDpi; } + @Value("${pdf2jpg.dpi:105}") public void pdf2JpgDpi(int pdf2JpgDpi) { setPdf2JpgDpiValue(pdf2JpgDpi); } + public static void setPdf2JpgDpiValue(int pdf2JpgDpi) { ConfigConstants.pdf2JpgDpi = pdf2JpgDpi; } @@ -460,10 +498,12 @@ public class ConfigConstants { public static String getOfficeTypeWeb() { return officeTypeWeb; } + @Value("${office.type.web:web}") public void setOfficeTypeWeb(String officeTypeWeb) { setOfficeTypeWebValue(officeTypeWeb); } + public static void setOfficeTypeWebValue(String officeTypeWeb) { ConfigConstants.officeTypeWeb = officeTypeWeb; } @@ -547,10 +587,12 @@ public class ConfigConstants { public static String getOfficePageRange() { return officePageRange; } + @Value("${office.pagerange:false}") public void setOfficePageRange(String officePageRange) { setOfficePageRangeValue(officePageRange); } + public static void setOfficePageRangeValue(String officePageRange) { ConfigConstants.officePageRange = officePageRange; } @@ -558,10 +600,12 @@ public class ConfigConstants { public static String getOfficeWatermark() { return officeWatermark; } + @Value("${office.watermark:false}") public void setOfficeWatermark(String officeWatermark) { setOfficeWatermarkValue(officeWatermark); } + public static void setOfficeWatermarkValue(String officeWatermark) { ConfigConstants.officeWatermark = officeWatermark; } @@ -569,10 +613,12 @@ public class ConfigConstants { public static String getOfficeQuality() { return officeQuality; } + @Value("${office.quality:80}") public void setOfficeQuality(String officeQuality) { setOfficeQualityValue(officeQuality); } + public static void setOfficeQualityValue(String officeQuality) { ConfigConstants.officeQuality = officeQuality; } @@ -580,10 +626,12 @@ public class ConfigConstants { public static String getOfficeMaxImageResolution() { return officeMaxImageResolution; } + @Value("${office.maximageresolution:150}") public void setOfficeMaxImageResolution(String officeMaxImageResolution) { setOfficeMaxImageResolutionValue(officeMaxImageResolution); } + public static void setOfficeMaxImageResolutionValue(String officeMaxImageResolution) { ConfigConstants.officeMaxImageResolution = officeMaxImageResolution; } @@ -591,10 +639,12 @@ public class ConfigConstants { public static Boolean getOfficeExportBookmarks() { return officeExportBookmarks; } + @Value("${office.exportbookmarks:true}") public void setOfficeExportBookmarks(Boolean officeExportBookmarks) { setOfficeExportBookmarksValue(officeExportBookmarks); } + public static void setOfficeExportBookmarksValue(Boolean officeExportBookmarks) { ConfigConstants.officeExportBookmarks = officeExportBookmarks; } @@ -602,10 +652,12 @@ public class ConfigConstants { public static Boolean getOfficeExportNotes() { return officeExportNotes; } + @Value("${office.exportnotes:true}") public void setExportNotes(Boolean officeExportNotes) { setOfficeExportNotesValue(officeExportNotes); } + public static void setOfficeExportNotesValue(Boolean officeExportNotes) { ConfigConstants.officeExportNotes = officeExportNotes; } @@ -613,10 +665,12 @@ public class ConfigConstants { public static Boolean getOfficeDocumentOpenPasswords() { return officeDocumentOpenPasswords; } + @Value("${office.documentopenpasswords:true}") public void setDocumentOpenPasswords(Boolean officeDocumentOpenPasswords) { setOfficeDocumentOpenPasswordsValue(officeDocumentOpenPasswords); } + public static void setOfficeDocumentOpenPasswordsValue(Boolean officeDocumentOpenPasswords) { ConfigConstants.officeDocumentOpenPasswords = officeDocumentOpenPasswords; } @@ -628,56 +682,66 @@ public class ConfigConstants { public static String getBeian() { return beian; } + @Value("${beian:default}") public void setBeian(String beian) { setBeianValue(beian); } + public static void setBeianValue(String beian) { ConfigConstants.beian = beian; } - public static String gethomePpageNumber() { - return homePpageNumber; - } - @Value("${home.pagenumber:1}") - public void sethomePpageNumber(String homePpageNumber) { - sethomePpageNumberValue(homePpageNumber); - } - public static void sethomePpageNumberValue(String homePpageNumber) { - ConfigConstants.homePpageNumber = homePpageNumber; + public static String getHomePageNumber() { + return homePageNumber; } - public static String gethomePagination() { + @Value("${home.pagenumber:1}") + public void setHomePageNumber(String homePageNumber) { + setHomePageNumberValue(homePageNumber); + } + + public static void setHomePageNumberValue(String homePageNumber) { + ConfigConstants.homePageNumber = homePageNumber; + } + + public static String getHomePagination() { return homePagination; } + @Value("${home.pagination:true}") - public void sethomePagination(String homePagination) { - sethomePaginationValue(homePagination); + public void setHomePagination(String homePagination) { + setHomePaginationValue(homePagination); } - public static void sethomePaginationValue(String homePagination) { + + public static void setHomePaginationValue(String homePagination) { ConfigConstants.homePagination = homePagination; } - public static String gethomePageSize() { + public static String getHomePageSize() { return homePageSize; } + @Value("${home.pagesize:15}") - public void sethomePagesize(String homePageSize) { - sethomePageSizeValue(homePageSize); + public void setHomePageSize(String homePageSize) { + setHomePageSizeValue(homePageSize); } - public static void sethomePageSizeValue(String homePageSize) { + + public static void setHomePageSizeValue(String homePageSize) { ConfigConstants.homePageSize = homePageSize; } - public static String gethomeSearch() { + public static String getHomeSearch() { return homeSearch; } + @Value("${home.search:1}") - public void sethomeSearch(String homeSearch) { - sethomeSearchValue(homeSearch); + public void setHomeSearch(String homeSearch) { + setHomeSearchValue(homeSearch); } - public static void sethomeSearchValue(String homeSearch) { + + public static void setHomeSearchValue(String homeSearch) { ConfigConstants.homeSearch = homeSearch; } diff --git a/server/src/main/java/cn/keking/config/ConfigRefreshComponent.java b/server/src/main/java/cn/keking/config/ConfigRefreshComponent.java index 92c7eb49..6ac3d85c 100644 --- a/server/src/main/java/cn/keking/config/ConfigRefreshComponent.java +++ b/server/src/main/java/cn/keking/config/ConfigRefreshComponent.java @@ -46,6 +46,7 @@ public class ConfigRefreshComponent { String configFilePath = ConfigUtils.getCustomizedConfigPath(); String baseUrl; String trustHost; + String notTrustHost; String pdfPresentationModeDisable; String pdfOpenFileDisable; String pdfPrintDisable; @@ -73,7 +74,7 @@ public class ConfigRefreshComponent { boolean officeDocumentOpenPasswords; String cadTimeout; int cadThread; - String homePpageNumber; + String homePageNumber; String homePagination; String homePageSize; String homeSearch; @@ -92,8 +93,9 @@ public class ConfigRefreshComponent { ftpControlEncoding = properties.getProperty("ftp.control.encoding", ConfigConstants.DEFAULT_FTP_CONTROL_ENCODING); textArray = text.split(","); mediaArray = media.split(","); - baseUrl = properties.getProperty("base.url", ConfigConstants.DEFAULT_BASE_URL); - trustHost = properties.getProperty("trust.host", ConfigConstants.DEFAULT_TRUST_HOST); + baseUrl = properties.getProperty("base.url", ConfigConstants.DEFAULT_VALUE); + trustHost = properties.getProperty("trust.host", ConfigConstants.DEFAULT_VALUE); + notTrustHost = properties.getProperty("not.trust.host", ConfigConstants.DEFAULT_VALUE); pdfPresentationModeDisable = properties.getProperty("pdf.presentationMode.disable", ConfigConstants.DEFAULT_PDF_PRESENTATION_MODE_DISABLE); pdfOpenFileDisable = properties.getProperty("pdf.openFile.disable", ConfigConstants.DEFAULT_PDF_OPEN_FILE_DISABLE); pdfPrintDisable = properties.getProperty("pdf.print.disable", ConfigConstants.DEFAULT_PDF_PRINT_DISABLE); @@ -119,7 +121,7 @@ public class ConfigRefreshComponent { officeExportNotes = Boolean.parseBoolean(properties.getProperty("office.exportnotes", ConfigConstants.DEFAULT_OFFICE_EXPORTNOTES)); officeDocumentOpenPasswords = Boolean.parseBoolean(properties.getProperty("office.documentopenpasswords", ConfigConstants.DEFAULT_OFFICE_EOCUMENTOPENPASSWORDS)); cadTimeout = properties.getProperty("cad.timeout", ConfigConstants.DEFAULT_CAD_TIMEOUT); - homePpageNumber = properties.getProperty("home.pagenumber", ConfigConstants.DEFAULT_HOME_PAGENUMBER); + homePageNumber = properties.getProperty("home.pagenumber", ConfigConstants.DEFAULT_HOME_PAGENUMBER); homePagination = properties.getProperty("home.pagination", ConfigConstants.DEFAULT_HOME_PAGINATION); homePageSize = properties.getProperty("home.pagesize", ConfigConstants.DEFAULT_HOME_PAGSIZE); homeSearch = properties.getProperty("home.search", ConfigConstants.DEFAULT_HOME_SEARCH); @@ -135,6 +137,7 @@ public class ConfigRefreshComponent { ConfigConstants.setFtpControlEncodingValue(ftpControlEncoding); ConfigConstants.setBaseUrlValue(baseUrl); ConfigConstants.setTrustHostValue(trustHost); + ConfigConstants.setNotTrustHostValue(notTrustHost); ConfigConstants.setOfficePreviewSwitchDisabledValue(officePreviewSwitchDisabled); ConfigConstants.setPdfPresentationModeDisableValue(pdfPresentationModeDisable); ConfigConstants.setPdfOpenFileDisableValue(pdfOpenFileDisable); @@ -162,10 +165,10 @@ public class ConfigRefreshComponent { ConfigConstants.setDeleteCaptchaValue(deleteCaptcha); ConfigConstants.setCadTimeoutValue(cadTimeout); ConfigConstants.setCadThreadValue(cadThread); - ConfigConstants.sethomePpageNumberValue(homePpageNumber); - ConfigConstants.sethomePaginationValue(homePagination); - ConfigConstants.sethomePageSizeValue(homePageSize); - ConfigConstants.sethomeSearchValue(homeSearch); + ConfigConstants.setHomePageNumberValue(homePageNumber); + ConfigConstants.setHomePaginationValue(homePagination); + ConfigConstants.setHomePageSizeValue(homePageSize); + ConfigConstants.setHomeSearchValue(homeSearch); setWatermarkConfig(properties); bufferedReader.close(); fileReader.close(); diff --git a/server/src/main/java/cn/keking/web/filter/AttributeSetFilter.java b/server/src/main/java/cn/keking/web/filter/AttributeSetFilter.java index 3ee2c45f..5f208877 100644 --- a/server/src/main/java/cn/keking/web/filter/AttributeSetFilter.java +++ b/server/src/main/java/cn/keking/web/filter/AttributeSetFilter.java @@ -43,10 +43,10 @@ public class AttributeSetFilter implements Filter { request.setAttribute("beian", ConfigConstants.getBeian()); request.setAttribute("size", ConfigConstants.maxSize()); request.setAttribute("deleteCaptcha", ConfigConstants.getDeleteCaptcha()); - request.setAttribute("homePpageNumber", ConfigConstants.gethomePpageNumber()); - request.setAttribute("homePagination", ConfigConstants.gethomePagination()); - request.setAttribute("homePageSize", ConfigConstants.gethomePageSize()); - request.setAttribute("homeSearch", ConfigConstants.gethomeSearch()); + request.setAttribute("homePageNumber", ConfigConstants.getHomePageNumber()); + request.setAttribute("homePagination", ConfigConstants.getHomePagination()); + request.setAttribute("homePageSize", ConfigConstants.getHomePageSize()); + request.setAttribute("homeSearch", ConfigConstants.getHomeSearch()); } /** diff --git a/server/src/main/java/cn/keking/web/filter/BaseUrlFilter.java b/server/src/main/java/cn/keking/web/filter/BaseUrlFilter.java index 96828fd9..f7a0ee8e 100644 --- a/server/src/main/java/cn/keking/web/filter/BaseUrlFilter.java +++ b/server/src/main/java/cn/keking/web/filter/BaseUrlFilter.java @@ -43,7 +43,7 @@ public class BaseUrlFilter implements Filter { final String urlInHeader = servletRequest.getHeader("X-Base-Url"); if (StringUtils.isNotEmpty(urlInHeader)) { baseUrl = urlInHeader; - } else if (configBaseUrl != null && !ConfigConstants.DEFAULT_BASE_URL.equalsIgnoreCase(configBaseUrl)) { + } else if (configBaseUrl != null && !ConfigConstants.DEFAULT_VALUE.equalsIgnoreCase(configBaseUrl)) { //2、如果配置文件中配置了 baseUrl 且不为 default 则以配置文件为准 baseUrl = configBaseUrl; } else { 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 380e3271..21093638 100644 --- a/server/src/main/java/cn/keking/web/filter/TrustHostFilter.java +++ b/server/src/main/java/cn/keking/web/filter/TrustHostFilter.java @@ -19,7 +19,7 @@ import org.springframework.util.FileCopyUtils; */ public class TrustHostFilter implements Filter { - private String notTrustHost; + private String notTrustHostHtmlView; @Override public void init(FilterConfig filterConfig) { @@ -27,7 +27,7 @@ public class TrustHostFilter implements Filter { try { classPathResource.getInputStream(); byte[] bytes = FileCopyUtils.copyToByteArray(classPathResource.getInputStream()); - this.notTrustHost = new String(bytes, StandardCharsets.UTF_8); + this.notTrustHostHtmlView = new String(bytes, StandardCharsets.UTF_8); } catch (IOException e) { e.printStackTrace(); } @@ -37,16 +37,24 @@ public class TrustHostFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String url = WebUtils.getSourceUrl(request); String host = WebUtils.getHost(url); - if (host != null &&!ConfigConstants.getTrustHostSet().isEmpty() && !ConfigConstants.getTrustHostSet().contains(host)) { - String html = this.notTrustHost.replace("${current_host}", host); + assert host != null; + if (!isTrustHost(host) || isNotTrustHost(host)) { + String html = this.notTrustHostHtmlView.replace("${current_host}", host); response.getWriter().write(html); response.getWriter().close(); - } - else { + } else { chain.doFilter(request, response); } } + public boolean isTrustHost(String host) { + return !ConfigConstants.getTrustHostSet().isEmpty() && ConfigConstants.getTrustHostSet().contains(host); + } + + public boolean isNotTrustHost(String host) { + return !ConfigConstants.getNotTrustHostSet().isEmpty() && ConfigConstants.getNotTrustHostSet().contains(host); + } + @Override public void destroy() { diff --git a/server/src/main/resources/web/main/index.ftl b/server/src/main/resources/web/main/index.ftl index 19f7727f..c4ebb5f7 100644 --- a/server/src/main/resources/web/main/index.ftl +++ b/server/src/main/resources/web/main/index.ftl @@ -258,7 +258,7 @@ $(function () { $('#table').bootstrapTable({ url: 'listFiles', - pageNumber: ${homePpageNumber},//初始化加载第一页 + pageNumber: ${homePageNumber},//初始化加载第一页 pageSize:${homePageSize}, //初始化单页记录数 pagination: ${homePagination}, //是否分页 pageList: [5, 10, 20, 30, 50, 100, 200, 500], From d407b88b67bf66089e7c8c25d5ecefb7d979f03c Mon Sep 17 00:00:00 2001 From: kl Date: Fri, 8 Mar 2024 10:12:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E6=96=87=E4=BB=B6=20host=20=E9=BB=91=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/keking/web/filter/TrustHostFilter.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) 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 21093638..e4012047 100644 --- a/server/src/main/java/cn/keking/web/filter/TrustHostFilter.java +++ b/server/src/main/java/cn/keking/web/filter/TrustHostFilter.java @@ -2,6 +2,7 @@ package cn.keking.web.filter; import cn.keking.config.ConfigConstants; import cn.keking.utils.WebUtils; + import java.io.IOException; import java.nio.charset.StandardCharsets; import javax.servlet.Filter; @@ -10,6 +11,8 @@ import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; + +import org.apache.commons.collections4.CollectionUtils; import org.springframework.core.io.ClassPathResource; import org.springframework.util.FileCopyUtils; @@ -38,7 +41,7 @@ public class TrustHostFilter implements Filter { String url = WebUtils.getSourceUrl(request); String host = WebUtils.getHost(url); assert host != null; - if (!isTrustHost(host) || isNotTrustHost(host)) { + if (isNotTrustHost(host)) { String html = this.notTrustHostHtmlView.replace("${current_host}", host); response.getWriter().write(html); response.getWriter().close(); @@ -47,12 +50,14 @@ public class TrustHostFilter implements Filter { } } - public boolean isTrustHost(String host) { - return !ConfigConstants.getTrustHostSet().isEmpty() && ConfigConstants.getTrustHostSet().contains(host); - } - public boolean isNotTrustHost(String host) { - return !ConfigConstants.getNotTrustHostSet().isEmpty() && ConfigConstants.getNotTrustHostSet().contains(host); + if (CollectionUtils.isNotEmpty(ConfigConstants.getNotTrustHostSet())) { + return ConfigConstants.getNotTrustHostSet().contains(host); + } + if (CollectionUtils.isNotEmpty(ConfigConstants.getTrustHostSet())) { + return !ConfigConstants.getTrustHostSet().contains(host); + } + return false; } @Override