【7.1.6】【customer】c端用户增加图形验证码

pull/26/head
fengshuonan 2022-01-30 23:19:45 +08:00
parent da629d3747
commit 2dbcd912a2
1 changed files with 24 additions and 8 deletions

View File

@ -45,6 +45,7 @@ import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.rule.exception.enums.defaults.DefaultBusinessExceptionEnum;
import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil;
import cn.stylefeng.roses.kernel.security.api.DragCaptchaApi;
import cn.stylefeng.roses.kernel.security.api.ImageCaptchaApi;
import cn.stylefeng.roses.kernel.security.api.expander.SecurityConfigExpander;
import cn.stylefeng.roses.kernel.validator.api.exception.enums.ValidatorExceptionEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -106,12 +107,15 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
@Resource
private OldPasswordValidateApi oldPasswordValidateApi;
@Resource
private ImageCaptchaApi imageCaptchaApi;
@Override
@Transactional(rollbackFor = Exception.class)
public void reg(CustomerRequest customerRequest) {
// 验证拖拽验证码
this.validateDragCaptcha(customerRequest.getVerKey(), customerRequest.getVerCode());
// 验证验证码
this.validateCaptcha(customerRequest.getVerKey(), customerRequest.getVerCode());
synchronized (REG_LOCK) {
// 校验邮箱和账号是否重复
@ -154,7 +158,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
loginRequest.setRememberMe(true);
// 验证拖拽验证码
this.validateDragCaptcha(loginRequest.getVerKey(), loginRequest.getVerCode());
this.validateCaptcha(loginRequest.getVerKey(), loginRequest.getVerCode());
// 查询用户信息
LambdaQueryWrapper<Customer> wrapper = new LambdaQueryWrapper<>();
@ -228,7 +232,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
public void sendResetPwdEmail(CustomerRequest customerRequest) {
// 验证拖拽验证码
this.validateDragCaptcha(customerRequest.getVerKey(), customerRequest.getVerCode());
this.validateCaptcha(customerRequest.getVerKey(), customerRequest.getVerCode());
// 验证邮箱是否存在
LambdaQueryWrapper<Customer> customerLambdaQueryWrapper = new LambdaQueryWrapper<>();
@ -557,12 +561,25 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
}
/**
*
*
*
* @author fengshuonan
* @date 2021/7/6 15:07
*/
private void validateDragCaptcha(String verKey, String verCode) {
private void validateCaptcha(String verKey, String verCode) {
// 如果开启了验证码校验,则验证当前请求的验证码是否正确
if (SecurityConfigExpander.getCaptchaOpen()) {
if (StrUtil.isEmpty(verKey) || StrUtil.isEmpty(verCode)) {
throw new AuthException(ValidatorExceptionEnum.CAPTCHA_EMPTY);
}
if (!imageCaptchaApi.validateCaptcha(verKey, verCode)) {
throw new AuthException(ValidatorExceptionEnum.CAPTCHA_ERROR);
}
return;
}
// 如果开启了拖拽验证码
if (SecurityConfigExpander.getDragCaptchaOpen()) {
if (StrUtil.isEmpty(verKey) || StrUtil.isEmpty(verCode)) {
throw new AuthException(ValidatorExceptionEnum.CAPTCHA_EMPTY);
@ -573,5 +590,4 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
}
}
}
}