反饋已提交

網絡繁忙

管理平台應用-密碼加密設定

1. 概述

  1. 在平台內建進行使用者身份驗證的時候,密碼存在資料庫(FineReport 內建資料庫 FineDB 或者其他資料庫)中,認證時使用者輸入的密碼與資料庫中密碼相同則認證通過,若資料庫被破解了則對系統造成威脅,為加強系統安全性,FineReport具備了密碼加密功能。

  2. 在進行手動新增使用者的時候,使用密碼加密功能。資料庫中存的是密文,輸入的密碼需要進行加密才能和資料庫中的密文進行匹配,加大破解難度,提高系統安全性。

2. 實現原理

2.1 設定方法

  1. 登入決策平台,點選【管理系統】→【使用者管理】→【所有使用者】→【同步使用者】。

  2. 彈出【使用者升級設定】面板,直接點選【確定】,跳轉到【同步使用者】面板。

实现原理-设置方法2.png

2.2 密碼加密方式分類

  1. 密碼加密功能分為:內建 SHA 加密、自定義密碼加密。

  2. 內建 SHA 加密:加密方式已經封裝了。

  3. 自定義密碼加密:需要將自定義的密碼驗證類(包含了加密方法)放在報表伺服器如/webapps/webroot/WEB→INF/classes下,勾選自定義密碼加密,並指向自定義的密碼驗證類。

2.3 原理

  1. 設定了加密規則,encodePassword 方法中會先對使用者輸入密碼進行加密轉換,再與資料庫密碼匹配。

  2. 內建 SHA 加密:使用者輸入的密碼預設經過SHA加密,再和資料庫中的密碼進行匹配。

  3. 自定義密碼加密:使用者輸入的“密碼”或“使用者名稱和密碼”經過自定義加密規則進行加密,再和資料庫中的資訊進行匹配,支援 2 個介面實現方法,如下:

  4. 只需要對密碼進行加密得到密文:String encode(String originText);//入參是明文密碼,對密碼進行加密得到密文。

  5. 對使用者名稱和密碼進行加密得到密文:String encode(String originUserName, String originPassword);//入參是使用者名稱和明文密碼,返回結果是密文字元。

    3. 自定義密碼加密範例

    3.1 BASE64 加密方式-自定義密碼驗證類

    1. 定義一個類,命名為 Base64PasswordValidator.java,擴展於 AbstractPasswordValidator,詳細的程式碼請參照:https://code.fanruan.com/demo/example/src/branch/release/10.0/src/main/java/com/fr/decision/privilege/encrpt/Base64PasswordValidator.java 

    2. 編譯獲得 Base64PasswordValidator.class。

    3. 將編譯的 Base64PasswordValidator.class 放在/webapps/webroot/WEB→INF/classes/com/fr/decision/privilege/encrpt目錄下。

    4. 注:這裡使用 String encode(String originText);//只對密碼進行加密得到密文。

    5. 注:需要重啟工程。

    現提供編譯後的 BASE64 加密類,點選下載檔案:Base64PasswordValidator.7z

    3.2 BASE64 加密方式-平台設定

    1. 點選【管理系統】→【使用者管理】→【所有使用者】→【同步使用者】。

    2. 彈出【同步使用者】面板,【加密方式】選擇【自訂密碼加密】,選擇Base64PasswordValidator.class。點選【確定】即可。

    base64-平台设置.png

    3.3 SHA256 加密方式-自定義密碼加密類

    1. 定義一個類,命名為 CustomSHA256PasswordValidator.java,擴展於 AbstractPasswordValidator

    2. 同上,編譯獲得 CustomSHA256PasswordValidator.class。

    3. 將編譯的CustomSHA256PasswordValidator.class放在/webapps/webroot/WEB→INF/classes/com/fr/decision/privilege/encrpt目錄下。

    4. 注:這裡使用 String encode(String originUserName, String originPassword);//對使用者名稱和密碼一起進行加密得到密文。

    現提供編譯後的 BASE64 加密類,點選下載檔案:CustomSHA256PasswordValidator.7z

    3.4 SHA256加密方式-平台設定

    1. 點選【管理系統】→【使用者管理】→【所有使用者】→【同步使用者】。

    2. 彈出【同步使用者】面板,【加密方式】選擇【自訂密碼加密】,選擇Base64PasswordValidator.class。點選【確定】即可。

    SHA256-平台设置.png

    3.5 MD5 加密方式-下載並放置MD5加密類

    1. 現提供現成的MD5加密類。

    2. 點選下載之後,將decision→new→password.zip解壓,解壓後得到decision資料夾,將資料夾放於%FR_HOME%\webroot\WEB→INF\classes\com\fr\decision目錄下。

    現提供編譯後的 BASE64 加密類,點選下載檔案:decision-new-password.zip

    3.6 MD5加密方式-平台設定

    1. 點選【管理系統】→【使用者管理】→【所有使用者】→【同步使用者】。

    2. 彈出【同步使用者】面板,【加密方式】選擇【自訂密碼加密】,選擇MD5PasswordValodator.class。點選【確定】即可。

    md5-平台设置1.png

    3.7 MD5加密方式-支援使用者名稱加密

        若使用者需要的是:使用者名稱+密碼的方式進行自定義加密,請使用檔案:decision.zip,使用方法同上。decision.zip

    3.8 MD5加密方式-注意事項

    1. 9.0 版本 FineReport 內建的 MD5 加密方式不區分密文大小寫,10.0 版本 FineReport適配的 MD5 加密方式區分大小寫。

    2. 9.0 同步選擇內建 MD5 加密,升級後會內建一個小寫 MD5 的 class,如果是大寫密文,升級後就不能登入,需要手動替換大寫 class,使用方法同上。

    附件列表


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

    文 檔回 饋

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

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

    不再提示

    10s後關閉