Open Jiiiiiin opened 5 years ago
目前的临时解决方案,反射,但是不够好,如果有这个需求的朋友可以参考:
/**
* TODO https://github.com/whvcse/EasyCaptcha/pull/12 等待合并,将自定义数据设置到验证码生成器中
*/
@Deprecated
private void _setCode2ImageCodeCaptcha(ImageCode imageCode, String capText) {
val captcha = imageCode.getCaptcha();
try {
val chars = captcha.getClass().getSuperclass().getDeclaredField("chars");
chars.setAccessible(true);
// TODO 需要手动添加随机功能,根据 imageCode的长度来进行随机
chars.set(captcha, capText);
captcha.setLen(capText.length());
} catch (NoSuchFieldException | IllegalAccessException e) {
log.error("反射设置验证码出错", e);
}
}
将设置验证码属性方法放开了,设置自定义验证码,使用方来确保验证码的随机性,比如,使用方有一个需要需要根据用户的账号或者手机号随机几位来生成验证码,就可以通过该方法设置验证码,来实现该需求。
我们这边就有这样的需求,麻烦大佬考虑一下。