2020-06-05 21:51
异常信息已经很清楚:
java.lang.NoSuchMethodError
这种异常是 java 基础知识,多个同样功能的 jar 包冲突,或者 jar 包版本不对
使用下面方法检查:
1:打开 eclipse 中的项目
2:按快捷键: ctrl + shift + t, 会弹出一个 Open Type 对话框。如果弹不出来,在工具栏点按那个 "文档夹上面有两个不同颜色小球" 的按钮,也可弹出 Open Type 对话框
3:在对话输中输入:javax.servlet.ServletRequest
4:键盘方向键向下键,进入下方的列表
5:盯着列表下面的显示 jar 包名的的那一栏字,能找出该 javax.servlet.ServletRequest 类在多个 jar 包中出现
6:打开 pom.xml 使用 exclusions 标签去除掉重复的 jar 包
如果不是你要答辩,这么基础的问题我是不可能回复的
2020-06-05 15:03
@山东小木 密码 hash 只需要下面的方法就足够了:
String salt = HashKit.generateSaltForSha256();
password = HashKit.sha256(salt + password);
上面的用法是非常专业的方式,并不需要二次 hash。
最核心是下面几点:
1:一定要使用随机盐,用于防止彩虹表攻击
2:使用 sha256 而不是 md5,用于防止 hash 碰撞攻击。md5 已被中国数学家王小云破解,不再安全
3:sha512 更安全但hash值太长,sha256 足够安全 hash 值不是太长。所以 sha256 是最优方案。如果你的系统不是银行类的,采用 sha256 足够了,否则可以采用 sha512。
4:不要使用自己创造的 hash 算法,除非你是极度专业的该领域的专业人士,否则反而容易被破解。
5:不必使用二次 hash,二次 hash 并不能带来安全性的提升
jfinal club 采用的密码 hash、存储方案建立在作者大量、细致的调研,是十分专业的方案。
2020-06-05 14:31
@xiuxiu-xiuxiu 为啥还在使用如此老的版本? 强烈建议升级到最新版本,这里有升级文档:
https://jfinal.com/doc/14-1
2020-06-04 17:36
@老宇 因为 jfinal 的路由方式有很多的优点是 spring 那种模式不具备的
相反的, spring 那种模式还有很多的缺点
这个讨论以前有过很多,已经有比较明确的共识
2020-06-04 16:23
@himans 这个得找个时间好好研究
目前,你可以在项目中进行扩展, CaptchaRender 也可以扩展出 extends MyCaptchaRender来用,然后:
render(new MyCaptchaRender(...))