mirror of https://github.com/elunez/eladmin
修复算术类型验证码在 Java 15+ 的兼容问题 (#607)
(cherry picked from commit cdbc3a8faaf5958489758608329aa70095b37bb3)pull/608/head^2
parent
01d1aa9721
commit
a49bd6d127
|
@ -80,7 +80,7 @@ public class LoginProperties {
|
||||||
switch (loginCode.getCodeType()) {
|
switch (loginCode.getCodeType()) {
|
||||||
case arithmetic:
|
case arithmetic:
|
||||||
// 算术类型 https://gitee.com/whvse/EasyCaptcha
|
// 算术类型 https://gitee.com/whvse/EasyCaptcha
|
||||||
captcha = new ArithmeticCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
captcha = new FixedArithmeticCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
||||||
// 几位数运算,默认是两位
|
// 几位数运算,默认是两位
|
||||||
captcha.setLen(loginCode.getLength());
|
captcha.setLen(loginCode.getLength());
|
||||||
break;
|
break;
|
||||||
|
@ -109,4 +109,27 @@ public class LoginProperties {
|
||||||
}
|
}
|
||||||
return captcha;
|
return captcha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static class FixedArithmeticCaptcha extends ArithmeticCaptcha {
|
||||||
|
public FixedArithmeticCaptcha(int width, int height) {
|
||||||
|
super(width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected char[] alphas() {
|
||||||
|
// 生成随机数字和运算符
|
||||||
|
int n1 = num(1, 10), n2 = num(1, 10);
|
||||||
|
int opt = num(3);
|
||||||
|
|
||||||
|
// 计算结果
|
||||||
|
int res = new int[]{n1 + n2, n1 - n2, n1 * n2}[opt];
|
||||||
|
// 转换为字符运算符
|
||||||
|
char optChar = "+-x".charAt(opt);
|
||||||
|
|
||||||
|
this.setArithmeticString(String.format("%s%c%s=?", n1, optChar, n2));
|
||||||
|
this.chars = String.valueOf(res);
|
||||||
|
|
||||||
|
return chars.toCharArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue