反饋已提交
網絡繁忙
在平台內建進行使用者身份驗證的時候,密碼存在資料庫(FineReport 內建資料庫 FineDB 或者其他資料庫)中,認證時使用者輸入的密碼與資料庫中密碼相同則認證通過,若資料庫被破解了則對系統造成威脅,為加強系統安全性,FineReport具備了密碼加密功能。
在進行手動新增使用者的時候,使用密碼加密功能。資料庫中存的是密文,輸入的密碼需要進行加密才能和資料庫中的密文進行匹配,加大破解難度,提高系統安全性。
登入決策平台,點選【管理系統】→【使用者管理】→【所有使用者】→【同步使用者】。
彈出【使用者升級設定】面板,直接點選【確定】,跳轉到【同步使用者】面板。
密碼加密功能分為:內建 SHA 加密、自定義密碼加密。
內建 SHA 加密:加密方式已經封裝了。
自定義密碼加密:需要將自定義的密碼驗證類(包含了加密方法)放在報表伺服器如/webapps/webroot/WEB→INF/classes下,勾選自定義密碼加密,並指向自定義的密碼驗證類。
設定了加密規則,encodePassword 方法中會先對使用者輸入密碼進行加密轉換,再與資料庫密碼匹配。
內建 SHA 加密:使用者輸入的密碼預設經過SHA加密,再和資料庫中的密碼進行匹配。
自定義密碼加密:使用者輸入的“密碼”或“使用者名稱和密碼”經過自定義加密規則進行加密,再和資料庫中的資訊進行匹配,支援 2 個介面實現方法,如下:
只需要對密碼進行加密得到密文:String encode(String originText);//入參是明文密碼,對密碼進行加密得到密文。
對使用者名稱和密碼進行加密得到密文:String encode(String originUserName, String originPassword);//入參是使用者名稱和明文密碼,返回結果是密文字元。
定義一個類,命名為 Base64PasswordValidator.java,擴展於 AbstractPasswordValidator,詳細的程式碼請參照:https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/decision/privilege/encrpt/Base64PasswordValidator.java。
編譯獲得 Base64PasswordValidator.class。
將編譯的 Base64PasswordValidator.class 放在/webapps/webroot/WEB→INF/classes/com/fr/decision/privilege/encrpt目錄下。
注:這裡使用 String encode(String originText);//只對密碼進行加密得到密文。
注:需要重啟工程。
Base64PasswordValidator.7z
點選【管理系統】→【使用者管理】→【所有使用者】→【同步使用者】。
彈出【同步使用者】面板,【加密方式】選擇【自訂密碼加密】,選擇Base64PasswordValidator.class。點選【確定】即可。
定義一個類,命名為 CustomSHA256PasswordValidator.java,擴展於 AbstractPasswordValidator,詳細的程式碼參見:https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/decision/privilege/encrpt/CustomSHA256PasswordValidator.java。
同上,編譯獲得 CustomSHA256PasswordValidator.class。
將編譯的CustomSHA256PasswordValidator.class放在/webapps/webroot/WEB→INF/classes/com/fr/decision/privilege/encrpt目錄下。
注:這裡使用 String encode(String originUserName, String originPassword);//對使用者名稱和密碼一起進行加密得到密文。
CustomSHA256PasswordValidator.7z
現提供現成的MD5加密類。
點選下載之後,將decision→new→password.zip解壓,解壓後得到decision資料夾,將資料夾放於%FR_HOME%\webroot\WEB→INF\classes\com\fr\decision目錄下。
decision-new-password.zip
彈出【同步使用者】面板,【加密方式】選擇【自訂密碼加密】,選擇MD5PasswordValodator.class。點選【確定】即可。
若使用者需要的是:使用者名稱+密碼的方式進行自定義加密,請使用檔案:decision.zip,使用方法同上。
decision.zip
9.0 版本 FineReport 內建的 MD5 加密方式不區分密文大小寫,10.0 版本 FineReport適配的 MD5 加密方式區分大小寫。
9.0 同步選擇內建 MD5 加密,升級後會內建一個小寫 MD5 的 class,如果是大寫密文,升級後就不能登入,需要手動替換大寫 class,使用方法同上。
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉