Finereport10同步用户密码加密(MD5加密)设置

1. 问题描述

在平台内置进行 用户身份验证 的时候,密码存在数据库(FineReport 内置数据库 FineDB 或者其他数据库)中,认证时用户输入的密码与数据库中密码相同则认证通过,若数据库被破解了则对系统造成威胁,怎样保证系统安全呢?

2. 解决方案

在进行 手动添加用户 的时候,使用密码加密功能。数据库中存的是密文,输入的密码需要进行加密才能和数据库中的密文进行匹配,加大破解难度,提高系统安全性。

3. 实现原理

3.1 设置方法

登录平台,点击管理系统>用户管理>设置开启同步数据集的时候,设置加密方式,如下图所示:

222

3.2 密码加密方式分类

密码加密功能分为:内置 SHA 加密、自定义密码加密。

  • 内置 SHA 加密:加密方式已经封装了;

  • 自定义密码加密:需要将自定义的密码验证类(包含了加密方法)放在报表服务器如/webapps/webroot/WEB-INF/classes下,勾选自定义密码加密,并指向自定义的密码验证类。

3.3 原理

若设置了加密规则,encodePassword 方法中会先对用户输入密码进行加密转换,再与数据库密码匹配。

  • 内置 SHA 加密:用户输入的密码默认经过SHA加密,再和数据库中的密码进行匹配;

  • 自定义密码加密:用户输入的“密码”或“用户名和密码”经过自定义加密规则进行加密,再和数据库中的信息进行匹配,支持 2 个接口实现方法,如下:

1)只需要对密码进行加密得到密文:String encode(String originText);//入参是明文密码,对密码进行加密得到密文

2)对用户名和密码进行加密得到密文:String encode(String originUserName, String originPassword);//入参是用户名和明文密码,返回结果是密文字符

注:其中 String encode(String originUserName, String originPassword);加密方式为 2019.1.18 新增的接口,包含接口1的功能,推荐使用此接口。

4. 自定义密码加密示例

下面我们制作三个简单的自定义密码加密示例:实现自定义密码 BASE64 加密、SHA256、MD5 加密。

4.1 BASE64 加密方式

4.1.1 自定义密码验证类

定义一个类,命名为 Base64PasswordValidator.java,扩展于 AbstractPasswordValidator,详细的代码参见:

https://code.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);//只对密码进行加密得到密文。

注:需要重启工程。

4.1.2 平台设置

在平台的用户同步数据集>加密方式>自定义加密类中选择 BASE64 加密类即可,如下图所示:

222

注:这边是举了一个最简单的例子,您可以根据自己的需求自己定义加密的方式。

4.2 SHA256 加密方式

4.2.1 自定义密码加密类

定义一个类,命名为 CustomSHA256PasswordValidator.java,扩展于 AbstractPasswordValidator,详细的代码参见:

https://code.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);//对用户名和密码一起进行加密得到密文。

4.2.2 平台设置

同 BASE64 加密方式,在平台的用户同步数据集>加密方式>自定义加密类中选择 SHA256 加密类即可。

4.3 MD5 加密方式

9.0 及以前的版本,同步数据集中密码可以选择“内置 MD5 加密”,而在 FR10.0 中取消了默认的 MD5 加密。

若用户的工程是 9.0 升级到 10.0 的,而在升级之前用户同步采用的是默认内置 MD5 加密或者用户就想使用 MD5 加密方式,又该如何处理呢?

4.3.1 下载 MD5 加密类

现提供现成的 MD5 加密类 ,点击下载之后,将类放于%FR_HOME%\webroot\WEB-INF\classes\com\fr\decision目录下

4.3.2 平台设置

在平台的用户同步数据集>加密方式>自定义加密类中选择 MD5 加密类即可,如下图所示:

222

4.3.3 支持用户名加密

若用户需要的是【用户名+密码】的方式进行自定义加密,请使用文件:decision.zip,使用方法同上。

4.3.4 注意事项

9.0 版本 FineReport 内置的 MD5 加密方式不区分密文大小写,10.0 版本 FineReport适配的 MD5 加密方式区分大小写。
9.0 同步选择内置 MD5 加密,升级后会内置一个小写 MD5 的 class,如果是大写密文,升级后就不能登录,需要手动替换大写 class,使用方法同上。

class 文件点击下载:MD5UpperCasePasswordValidator.rar

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: finereport 10是一款功能强大的企业级报表工具,其帮助文档详细介绍了该软件的各种功能和使用方法。 首先,帮助文档中包含了finereport 10的安装和配置指南。用户可以根据文档的步骤,轻松地安装和配置该软件,使其能够顺利运行。 其次,文档详细说明了finereport 10的报表设计功能。用户可以学习如何使用该软件来创建各种类型的报表,包括表格报表、图表报表和交叉报表等。文档中还提供了丰富的示例和教程,帮助用户快速掌握报表设计的技巧和方法。 帮助文档还介绍了finereport 10的数据源配置和数据集管理功能。用户可以了解如何连接各种数据库和数据源,以及如何创建和管理数据集。这些功能可以帮助用户轻松地从多个数据源中获取数据,并在报表中进行分析和展示。 此外,文档还详细说明了finereport 10的报表发布和共享功能。用户可以学习如何将报表发布到Web端或移动端,实现报表的在线查看和分享。文档还介绍了权限管理和报表订阅功能,使用户可以根据需要对报表进行权限控制和自动发送。 总之,finereport 10的帮助文档是用户学习和使用该软件的重要参考资料。通过阅读文档,用户可以全面了解该软件的各项功能,并掌握其高效使用方法,从而提高报表设计和数据分析的效率。 ### 回答2: FineReport 10 是一款强大的企业报表工具,其帮助文档详细介绍了软件的使用方法和功能特点,针对不同的用户需求提供了相应的教程和案例分析。 帮助文档主要分为以下几个部分: 1. 安装与配置:帮助用户完成软件的安装和配置,包括系统要求、安装步骤和常见问题解答。 2. 基础功能介绍:详细介绍了FineReport 10 的基本功能,如报表设计、数据连接、数据查询和数据分析等。每个功能都配有详细的说明和操作步骤,便于用户快速上手。 3. 进阶功能说明:针对有一定使用经验的用户,介绍了FineReport 10 的进阶功能。比如,模板制作、多维分析、数据分组和权限管理等。通过帮助文档,用户可以深入了解软件的高级功能,并灵活运用于实际项目中。 4. 解决常见问题:针对用户在使用FineReport 10 过程中常遇到的问题,提供了解决方案和注意事项。例如,如何导入数据、如何设置报表样式和如何发布报表等。 5. 案例分析与实战经验分享:通过实际案例的分析与分享,帮助用户掌握FineReport 10 在实际项目中的应用。这些案例不仅展示了软件的强大功能,也为用户提供了解决问题的思路和方法。 总之,FineReport 10 的帮助文档全面、详细,可以帮助用户快速学习和掌握软件的使用技巧,提高工作效率,实现报表定制化需求。无论是初学者还是有经验的用户,都可以通过帮助文档轻松完成各种报表制作任务。 ### 回答3: FineReport 10是一款非常强大的企业级报表软件,其帮助文档提供了详细且全面的使用指南和技术支持,以下是对其帮助文档的回答: 1. 全面的功能介绍:FineReport 10的帮助文档涵盖了软件的各个方面,包括报表设计、数据处理、数据源连接、报表发布、权限管理等功能的详细介绍。用户可以通过查阅帮助文档了解软件的全部功能,并可以根据需要选择相应的功能进行使用。 2. 清晰的示例和教程:帮助文档中提供了丰富的示例和教程,以帮助用户更好地理解和掌握软件的使用方法。这些示例和教程都是基于实际应用场景设计的,能够帮助用户更好地将软件应用于实际工作中。 3. 问题解答和技术支持:帮助文档中还提供了常见问题解答和技术支持,用户可以通过查阅帮助文档解决自己在使用过程中遇到的问题。如果在帮助文档中无法找到答案,用户还可以通过其他渠道获取售后技术支持,以确保能够顺利使用和应用FineReport 10。 4. 更新和升级说明:帮助文档中还包括了软件的更新和升级说明,用户可以通过查阅帮助文档了解每个版本的更新内容和升级方法,以保持软件的最新状态,并获得更好的体验和功能。 总之,FineReport 10的帮助文档提供了全面、清晰的使用指南和技术支持,能够帮助用户更好地掌握软件的功能和使用方法,并解决使用过程中遇到的问题。用户可以通过查阅帮助文档快速上手并有效地使用FineReport 10

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值