反饋已提交

網絡繁忙

數字簽章認證

一、概述

1
版本。
報表伺服器版本

JAR 包

新增功能
10.02019-05-20-
10.02020-08-03切換工作區間到開啓數字簽章認證的遠端伺服器,可直接預覽範本;同時範本預覽 URL 隨遠端設計使用者跳出而失效
10.0.142021-03-17支援遮蔽數字簽章功能

2
應用場景。
  1. 有範本權限的使用者複制自己的 範本預覽URL 給其他使用者,其他使用者即使沒有該範本的查看權限,也可以透過 URL 查看範本。

  2. 數字簽章認證則是即使有範本預覽 URL ,沒有數字簽章就無法查看範本。

3
功能簡介。
  1. 透過數字簽章驗證簽章資訊合法後,才允許存取範本,否則傳回沒有範本存取權限的報錯。

  2. 存取  範本預覽URL  時,需要在 URL 後新增後綴【&fine_digital_signature=值】。

二、開啓數字簽章認證

1
獲取 fine_digital_signature 值。

  1. 獲取對應的數字簽章鍵的 【fine_digital_signature】 值,這裏以【 GettingStarted.cpt 】範本為例。

  2. 需要提前準備 Java 環境及 IDE 工具並建立一個 Java 檔案,將【%FR_HOME%\webapps\webroot\WEB-INF\lib】下的【fine-core-10.0.jar】、【fine-third-10.0.jar】匯入建立的工程中,如圖1所示。

  3. 將代碼複制到建立的檔案中,修改需要進行數字簽章的範本並自訂數字簽章鍵。如下圖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();
        }
    }
  4. 運作 test 檔案並獲得數字簽章鍵的【fine_digital_signature】值,如下圖3所示。

  5. 運作結果的值會在本文第二章第3節效果預覽中用到。

注:path 的值為範本名稱,key 的值為數字簽章鍵,這兩個值會在本文 第二章第2節平台設定中用到。

2
平台設定。
  1. 以管理者身分進入數據決策系統,點選【管理系統】→【範本認證】→【數字簽章鍵】位址中,輸入鍵值,如下圖所示。

3
效果預覽。
  1. 直接存取 範本預覽URL ,本文範例連結為:【http://localhost:8075/webroot/decision/view/report?viewlet=GettingStarted.cpt】,提示沒有權限,如下圖1所示。

  2. 在 URL 後面新增參數:【&fine_digital_signature=值】,【值】為本文 第二章第1節運作 Java 檔案得到的資料,即可正常查看範本。如下圖2所示。

三、遠端伺服器預覽範本

  1. 2020-08-03 及之後的 JAR ,FineReport 設計器 切換工作區間 到開啓數字簽章認證的遠端伺服器,可直接預覽範本。如下圖所示。

注:範本預覽 URL 隨遠端設計使用者跳出而失效。即斷開遠端伺服器的連結,範本預覽 URL 將會失去直接預覽的效果。


四、注意事項

  1. 升級 2019-05-20 之後的 JAR 時,之前使用官方文檔生成的數字簽章的 Token 會失效,需要重新依賴新 JAR 生成【fine_digital_signature 】。

五、遮蔽數字簽章認證功能

  1. 超管希望對次級管理者開放範本認證功能,但不希望次級管理者使用【數字簽章認證】。

  2. 超級管理者可透過【fine_conf_entity視覺化配置插件】遮蔽數字簽章認證功能。重啓伺服器後設定生效。

  3. 修改配置項 TemplateAuthConfig.digitalAuthAvailable 的值為 false,重啓伺服器後,管理者點選【管理系統】→【範本認證】→【認證配置】,可以發現認證方式中的【數字簽章認證】被遮蔽,無法設定。


配置項
修改規則
TemplateAuthConfig.digitalAuthAvailable10.0.14 及之後版本的報表工程支援該參數

參數值如下,預設為true

false:管理者無法使用範本認證-數字簽章功能

true:管理者可使用範本認證-數字簽章功能


注1:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。

注2:在遮蔽【數字簽章認證】之前,請勿設定認證方式為【數字簽章認證】。否則遮蔽後認證仍然生效。


附件列表


主題: 數據決策系統
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉