mirror of https://github.com/elunez/eladmin
获取验证码逻辑,无需加锁,不涉及线程安全问题,提高效率 (#755)
parent
255a3254ce
commit
40177c6c8d
|
@ -68,33 +68,31 @@ public class LoginProperties {
|
||||||
*/
|
*/
|
||||||
private Captcha switchCaptcha(LoginCode loginCode) {
|
private Captcha switchCaptcha(LoginCode loginCode) {
|
||||||
Captcha captcha;
|
Captcha captcha;
|
||||||
synchronized (this) {
|
switch (loginCode.getCodeType()) {
|
||||||
switch (loginCode.getCodeType()) {
|
case ARITHMETIC:
|
||||||
case ARITHMETIC:
|
// 算术类型 https://gitee.com/whvse/EasyCaptcha
|
||||||
// 算术类型 https://gitee.com/whvse/EasyCaptcha
|
captcha = new FixedArithmeticCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
||||||
captcha = new FixedArithmeticCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
// 几位数运算,默认是两位
|
||||||
// 几位数运算,默认是两位
|
captcha.setLen(loginCode.getLength());
|
||||||
captcha.setLen(loginCode.getLength());
|
break;
|
||||||
break;
|
case CHINESE:
|
||||||
case CHINESE:
|
captcha = new ChineseCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
||||||
captcha = new ChineseCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
captcha.setLen(loginCode.getLength());
|
||||||
captcha.setLen(loginCode.getLength());
|
break;
|
||||||
break;
|
case CHINESE_GIF:
|
||||||
case CHINESE_GIF:
|
captcha = new ChineseGifCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
||||||
captcha = new ChineseGifCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
captcha.setLen(loginCode.getLength());
|
||||||
captcha.setLen(loginCode.getLength());
|
break;
|
||||||
break;
|
case GIF:
|
||||||
case GIF:
|
captcha = new GifCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
||||||
captcha = new GifCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
captcha.setLen(loginCode.getLength());
|
||||||
captcha.setLen(loginCode.getLength());
|
break;
|
||||||
break;
|
case SPEC:
|
||||||
case SPEC:
|
captcha = new SpecCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
||||||
captcha = new SpecCaptcha(loginCode.getWidth(), loginCode.getHeight());
|
captcha.setLen(loginCode.getLength());
|
||||||
captcha.setLen(loginCode.getLength());
|
break;
|
||||||
break;
|
default:
|
||||||
default:
|
throw new BadConfigurationException("验证码配置信息错误!正确配置查看 LoginCodeEnum ");
|
||||||
throw new BadConfigurationException("验证码配置信息错误!正确配置查看 LoginCodeEnum ");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotBlank(loginCode.getFontName())){
|
if(StringUtils.isNotBlank(loginCode.getFontName())){
|
||||||
captcha.setFont(new Font(loginCode.getFontName(), Font.PLAIN, loginCode.getFontSize()));
|
captcha.setFont(new Font(loginCode.getFontName(), Font.PLAIN, loginCode.getFontSize()));
|
||||||
|
|
Loading…
Reference in New Issue