1. 概述
1.1 版本
報表伺服器版本 | 功能變更 |
---|---|
11.0 | - |
1.2 問題描述
下載安裝/本地安裝插件時,提示「XXX插件安裝包簽章損壞,存在安全風險,無法安裝」。如下圖所示:
1.3 原因分析
下載安裝/本地安裝插件時,為了防止惡意篡改插件包中的代碼,提供插件完整性校驗功能。
若開啟了插件完整性校驗功能,如果插件包被解壓/被破壞,下載安裝/本地安裝插件時,禁止此插件安裝至系統。
2. 解決方法一:完全關閉校驗
適用場景:本方案將會關閉工程的插件完整性校驗,任何插件安裝都不會進行校驗,請謹慎進行本章操作。
方案簡介:透過填報,修改 FineDB 中 PluginFileValidateConfig.fileValidateOpen 欄位,關閉插件完整性校驗。本文第二節使用了在平台中修改 FineDB 表欄位的方案,在設計器中修改 FineDB 表欄位的詳細步驟可參見:填報修改fine_conf_entity。
注:如工程未購買「資料登入」功能點,即無法使用填報功能,則不適用本章方案,請使用解決方案二。
2.1 建立資料連結
管理者登入數據決策系統,點選「管理系統>系統管理>標準」。
若外接資料庫顯示「待配置」,則finedb資料庫資訊可參見 FineDB 資料庫簡介。
若外接資料庫顯示「已配置」,點選即可查看外接finedb資料庫的資訊。
建立一個資料連結,資料連結名稱為 FineDB,資料庫相關配置資訊可根據上文獲取。
注:資料連結名稱不可修改,否則下面的範本可能無法使用。
2.2 填報更新欄位
使用設計器遠端連結該工程,預覽該範本:finedb欄位修改.cpt
1)尋找欄位 PluginFileValidateConfig.fileValidateOpen,如果不存在該欄位,則點選「新增記錄」,新增該欄位。
2)修改欄位值為 false
3)點選「提交」
如下圖所示:
2.3 重啟工程
填報提交成功後,重啟工程。重啟後再次登入數據決策系統,即可關閉對上傳的插件安裝包的完整性校驗功能。
3. 解決方法二:手動安裝
適用場景:如需開啟插件包完整性校驗,但仍必須要安裝某個簽章無法透過校驗的插件(例如二開插件),則可透過手動安裝的方式安裝插件。
方案簡介:將其他工程中安裝好的插件檔案包,手動上傳至指定伺服器。
3.1 確定插件資料夾
1)FineReport 設計器所安裝的插件儲存在%FR_HOME%\webapps\webroot\WEB-INF\plugins 路徑中,如下圖所示:
注:路徑下的資料夾必須是在設計器中安裝插件生成的,不是官網下載的插件壓縮包解壓後得到的資料夾。
2)開啟某個插件資料夾下的plugin.xml檔案,可確定具體插件。如下圖所示:
3.2 複製貼補插件檔案
將%FR_HOME%\webapps\webroot\WEB-INF\plugins下的plugin-com.fr.plugin.bigScreen.v11-4.6.7資料夾複製貼補到%Tomcat_HOME%\webapps\webroot\WEB-INF\plugins 路徑下。如下圖所示:
3.3 重啟工程
手動安裝插件後,需要重啟報表工程,插件方可生效。
3.4 效果展示
重啟後,管理者登入數據決策系統,點選「管理系統>插件管理」,可看到插件已成功安裝。如下圖所示: