反饋已提交
網絡繁忙
JAR 包
有範本權限的使用者複制自己的 範本預覽URL 給其他使用者,其他使用者即使沒有該範本的查看權限,也可以透過 URL 查看範本。
數字簽章認證則是即使有範本預覽 URL ,沒有數字簽章就無法查看範本。
透過數字簽章驗證簽章資訊合法後,才允許存取範本,否則傳回沒有範本存取權限的報錯。
存取 範本預覽URL 時,需要在 URL 後新增後綴【&fine_digital_signature=值】。
獲取對應的數字簽章鍵的 【fine_digital_signature】 值,這裏以【 GettingStarted.cpt 】範本為例。
需要提前準備 Java 環境及 IDE 工具並建立一個 Java 檔案,將【%FR_HOME%\webapps\webroot\WEB-INF\lib】下的【fine-core-10.0.jar】、【fine-third-10.0.jar】匯入建立的工程中,如圖1所示。
將代碼複制到建立的檔案中,修改需要進行數字簽章的範本並自訂數字簽章鍵。如下圖2所示。代碼如下所示。
import com.fr.cert.token.JwtBuilder;import com.fr.cert.token.Jwts;import com.fr.cert.token.SignatureAlgorithm;import java.util.Date;public class test { public static void main(String[] args) { //數字簽章有效時長 long validTime = 30 * 60 * 1000; //數字簽章內容,以存取資源的相對路徑作為內容 String path = "GettingStarted.cpt"; String key = "123456"; //數字簽章鍵,可以自訂 //生成fine_digital_signature String fine_digital_signature = createJwt("", "", path, validTime, key); //輸出fine_digital_signature System.out.println(fine_digital_signature); } private static String createJwt(String issuer, String id, String subject, long validTime, String key) { //用於生成數字簽名,即參數fine_digital_signature的值 SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256; Date currentTime = new Date(); Date expirationTime = new Date(currentTime.getTime() + validTime); JwtBuilder builder = Jwts.builder() .setIssuer(issuer) .setSubject(subject) .setIssuedAt(currentTime) .setExpiration(expirationTime) .setId(id) .signWith(signatureAlgorithm, key); return builder.compact(); }}
運作 test 檔案並獲得數字簽章鍵的【fine_digital_signature】值,如下圖3所示。
運作結果的值會在本文第二章第3節效果預覽中用到。
注:path 的值為範本名稱,key 的值為數字簽章鍵,這兩個值會在本文 第二章第2節平台設定中用到。
以管理者身分進入數據決策系統,點選【管理系統】→【範本認證】→【數字簽章鍵】位址中,輸入鍵值,如下圖所示。
直接存取 範本預覽URL ,本文範例連結為:【http://localhost:8075/webroot/decision/view/report?viewlet=GettingStarted.cpt】,提示沒有權限,如下圖1所示。
在 URL 後面新增參數:【&fine_digital_signature=值】,【值】為本文 第二章第1節運作 Java 檔案得到的資料,即可正常查看範本。如下圖2所示。
2020-08-03 及之後的 JAR ,FineReport 設計器 切換工作區間 到開啓數字簽章認證的遠端伺服器,可直接預覽範本。如下圖所示。
注:範本預覽 URL 隨遠端設計使用者跳出而失效。即斷開遠端伺服器的連結,範本預覽 URL 將會失去直接預覽的效果。
升級 2019-05-20 之後的 JAR 時,之前使用官方文檔生成的數字簽章的 Token 會失效,需要重新依賴新 JAR 生成【fine_digital_signature 】。
超管希望對次級管理者開放範本認證功能,但不希望次級管理者使用【數字簽章認證】。
超級管理者可透過【fine_conf_entity視覺化配置插件】遮蔽數字簽章認證功能。重啓伺服器後設定生效。
修改配置項 TemplateAuthConfig.digitalAuthAvailable 的值為 false,重啓伺服器後,管理者點選【管理系統】→【範本認證】→【認證配置】,可以發現認證方式中的【數字簽章認證】被遮蔽,無法設定。
參數值如下,預設為true
false:管理者無法使用範本認證-數字簽章功能
true:管理者可使用範本認證-數字簽章功能
注1:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。
注2:在遮蔽【數字簽章認證】之前,請勿設定認證方式為【數字簽章認證】。否則遮蔽後認證仍然生效。
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉