Commit 4946d5de authored by 技术部-任文超's avatar 技术部-任文超

验证码为空时增加交互文案

parent 725685eb
......@@ -26,6 +26,8 @@ public interface Constants {
Long VERIFICATION_CODE_FINITE_COUNT = 3L;
String X_AUTH_TOKEN = "x-auth-token";
/** 登录账号/手机号参数名 */
String PHONE_NO = "phoneNo";
// -- Start -- IPV4安全策略常量组
/** 账密不匹配错误 - 按账号计数 */
......@@ -99,6 +101,10 @@ public interface Constants {
String FN_GEETEST_CHALLENGE = "geetest_challenge";
String FN_GEETEST_VALIDATE = "geetest_validate";
String FN_GEETEST_SECCODE = "geetest_seccode";
String QG_CAPTCHA_ID = "captchaId";
String QG_CAPTCHA_VALUE = "captchaValue";
/** 客户端类型参数名 */
String CLIENT_TYPE = "clientType";
/** 验证类型请求参数名 */
String VERIFY_PARAM = "verifyType";
/** 验证类型 - 极验 */
......@@ -106,5 +112,4 @@ public interface Constants {
/** 验证类型 - 量化派图形验证 */
String VERIFY_TYPE_QG = "qg";
// -- End -- 验证码常量组
}
......@@ -87,7 +87,7 @@ public class CaptchaFiniteValidateAdvisor {
return JsonResult.buildErrorStateResult("用户名或密码不正确", null);
}
// 当前用户手机号
String phoneNo = phonePasswordMap.get("phoneNo");
String phoneNo = phonePasswordMap.get(Constants.PHONE_NO);
Long countErrorByPhone = getCount(phoneNo);
if(countErrorByPhone == null){
LOGGER.info("用户名或密码不正确, phoneNo={}, countErrorByPhone={}, clientIp={}", phoneNo, countErrorByPhone, IPUtil.getRemoteIP(request));
......@@ -95,8 +95,8 @@ public class CaptchaFiniteValidateAdvisor {
}
if (countErrorByPhone > Constants.Image_Need_Count) {
String registerFrom = Optional.ofNullable(request.getParameter("registerFrom")).orElse("");
String captchaId = Optional.ofNullable(request.getParameter("captchaId")).orElse("");
String captchaValue = request.getParameter("captchaValue");
String captchaId = Optional.ofNullable(request.getParameter(Constants.QG_CAPTCHA_ID)).orElse("");
String captchaValue = request.getParameter(Constants.QG_CAPTCHA_VALUE);
if (shouldSkipCaptchaValidate(registerFrom, captchaId, captchaValue)) {
LOGGER.info("使用超级图形验证码校验, registerFrom={}, clientIp={}", registerFrom, IPUtil.getRemoteIP(request));
return pjp.proceed();
......@@ -181,7 +181,7 @@ public class CaptchaFiniteValidateAdvisor {
}
LOGGER.info("账密登录, phoneNo:{}", phoneNo);
Map<String, String> phonePasswordMap = new HashMap<String, String>(2);
phonePasswordMap.put("phoneNo", phoneNo);
phonePasswordMap.put(Constants.PHONE_NO, phoneNo);
phonePasswordMap.put("password", password);
return phonePasswordMap;
}
......
......@@ -8,6 +8,7 @@ import cn.quantgroup.xyqb.service.captcha.IQuantgroupCaptchaService;
import cn.quantgroup.xyqb.util.IPUtil;
import cn.quantgroup.xyqb.util.PasswordUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
......@@ -52,12 +53,18 @@ public class CaptchaNewValidateAdvisor {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
// 验证码类别:gt - 极验,qg - 量化派图形验证
if (Objects.equals(Constants.VERIFY_TYPE_GT, request.getParameter(Constants.VERIFY_PARAM))) {
if(StringUtils.isBlank(request.getParameter(Constants.FN_GEETEST_CHALLENGE))){
return JsonResult.buildErrorStateResult("操作过快,请稍后重试", "");
}
if(gtValid(request)){
return pjp.proceed();
}else{
return JsonResult.buildErrorStateResult("验证码有误", "");
}
} else {
if(StringUtils.isBlank(request.getParameter(Constants.QG_CAPTCHA_ID))){
return JsonResult.buildErrorStateResult("操作过快,请稍后重试", "");
}
if (qgValid(request)) {
return pjp.proceed();
} else {
......@@ -73,8 +80,8 @@ public class CaptchaNewValidateAdvisor {
* @throws Throwable
*/
private boolean gtValid(HttpServletRequest request) {
String phoneNo = request.getParameter("phoneNo");
String clientType = request.getParameter("clientType");
String phoneNo = request.getParameter(Constants.PHONE_NO);
String clientType = request.getParameter(Constants.CLIENT_TYPE);
String challenge = request.getParameter(Constants.FN_GEETEST_CHALLENGE);
String validate = request.getParameter(Constants.FN_GEETEST_VALIDATE);
String seccode = request.getParameter(Constants.FN_GEETEST_SECCODE);
......@@ -89,9 +96,9 @@ public class CaptchaNewValidateAdvisor {
* @throws Throwable
*/
private boolean qgValid(HttpServletRequest request) {
String phoneNo = request.getParameter("phoneNo");
String captchaId = Optional.ofNullable(request.getParameter("captchaId")).orElse("");
String captchaValue = request.getParameter("captchaValue");
String phoneNo = request.getParameter(Constants.PHONE_NO);
String captchaId = Optional.ofNullable(request.getParameter(Constants.QG_CAPTCHA_ID)).orElse("");
String captchaValue = request.getParameter(Constants.QG_CAPTCHA_VALUE);
log.info("Quantgroup - 图形验证码校验, phoneNo:{}, ip:{}, captchaId:{}, captchaValue:{}", phoneNo, IPUtil.getRemoteIP(request), captchaId, captchaValue);
return quantgroupCaptchaService.validQuantgroupCaptcha(captchaId, captchaValue);
}
......
......@@ -76,8 +76,8 @@ public class CaptchaValidateAdvisor {
private Object doCapchaValidate(ProceedingJoinPoint pjp) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String registerFrom = Optional.ofNullable(request.getParameter("registerFrom")).orElse("");
String captchaId = Optional.ofNullable(request.getParameter("captchaId")).orElse("");
String captchaValue = request.getParameter("captchaValue");
String captchaId = Optional.ofNullable(request.getParameter(Constants.QG_CAPTCHA_ID)).orElse("");
String captchaValue = request.getParameter(Constants.QG_CAPTCHA_VALUE);
if (shouldSkipCaptchaValidate(registerFrom, captchaId, captchaValue)) {
LOGGER.info("使用超级图形验证码校验, registerFrom={}, clientIp={}", registerFrom, IPUtil.getRemoteIP(request));
return pjp.proceed();
......
......@@ -32,7 +32,6 @@ import java.util.*;
public class PasswordFreeAccessValidateAdvisor {
private static final Logger LOGGER = LoggerFactory.getLogger(PasswordFreeAccessValidateAdvisor.class);
private static final String PHONE_NO = "phoneNo";
private static final String USER_ID = "userId";
/**
......@@ -65,12 +64,12 @@ public class PasswordFreeAccessValidateAdvisor {
Objects.requireNonNull(request, "无效请求");
String clientIp = IPUtil.getRemoteIP(request);
Set<String> paramKeys = request.getParameterMap().keySet();
if(!paramKeys.contains(PHONE_NO) && !paramKeys.contains(USER_ID)){
if(!paramKeys.contains(Constants.PHONE_NO) && !paramKeys.contains(USER_ID)){
LOGGER.info("非法请求 - 缺少参数, paramKeys={}, clientIp={}", paramKeys, clientIp);
return false;
}
// 当前请求的phoneNo/userId
String phoneNo = request.getParameter(PHONE_NO);
String phoneNo = request.getParameter(Constants.PHONE_NO);
String userId = request.getParameter(USER_ID);
if(StringUtils.isBlank(phoneNo) && StringUtils.isBlank(userId)){
LOGGER.info("非法请求 - 缺少参数, phoneNo={}, userId={}, clientIp={}", phoneNo, userId, clientIp);
......
......@@ -204,7 +204,7 @@ public class UserQueryLogController {
}
userDetailPage=userDetailService.getUserDetailsPage(userIds,null,null,pageId,pageSize,"auto");
}else if(key.equals("phoneNo")){
}else if(key.equals(Constants.PHONE_NO)){
for(String pn:queryV){
if(!ValidationUtil.validatePhoneNo(pn)){
return JsonResult.buildErrorStateResult("查询的手机号码"+pn+"格式有误",null);
......@@ -229,7 +229,7 @@ public class UserQueryLogController {
if(columns.contains("bankCard")){
//需加银行卡信息
if(key.equals("phoneNo")){
if(key.equals(Constants.PHONE_NO)){
phonesCards=getBankCardsByPhoneNos(queryV);
if(phonesCards!=null&&phonesCards.get("errorMsg")!=null&&!phonesCards.get("errorMsg").equals("")){
return JsonResult.buildErrorStateResult(phonesCards.get("errorMsg"),null);
......@@ -264,7 +264,7 @@ public class UserQueryLogController {
if(columns.contains("idNo")){
uqi.setIdNo(ud.getIdNo());
}
if(columns.contains("phoneNo")){
if(columns.contains(Constants.PHONE_NO)){
uqi.setPhoneNo(ud.getPhoneNo());
}
if(columns.contains("userId")){
......@@ -286,10 +286,10 @@ public class UserQueryLogController {
//保存记录
UserQueryLog log=new UserQueryLog();
log.setQueryItems(columns.replace("userId","用户ID").replace("phoneNo","手机号").replace("idNo","身份证号").replace("bankCard","银行卡号").replace("address","地址"));
log.setQueryItems(columns.replace("userId","用户ID").replace(Constants.PHONE_NO,"手机号").replace("idNo","身份证号").replace("bankCard","银行卡号").replace("address","地址"));
log.setResultAmount(Long.valueOf(userDetailPage.getTotalElements()));
//转换存储
log.setQueryCondition(key.replace("userId","用户ID").replace("phoneNo","手机号").replace("idNo","身份证号"));
log.setQueryCondition(key.replace("userId","用户ID").replace(Constants.PHONE_NO,"手机号").replace("idNo","身份证号"));
log.setQueryDetail(keyValues.replace("\n",";"));
log.setLoginUserName(userName);
userQueryLogService.save(log);
......@@ -424,7 +424,7 @@ public class UserQueryLogController {
}
userDetails=userDetailService.findByUserIdIn(userIds);
}else if(key.equals("phoneNo")){
}else if(key.equals(Constants.PHONE_NO)){
for(String pn:queryV){
if(!ValidationUtil.validatePhoneNo(pn)){
return JsonResult.buildErrorStateResult("查询的手机号码"+pn+"格式有误",pn);
......@@ -445,7 +445,7 @@ public class UserQueryLogController {
if(columns.contains("bankCard")){
//需加银行卡信息
if(key.equals("phoneNo")){
if(key.equals(Constants.PHONE_NO)){
phonesCards=getBankCardsByPhoneNos(queryV);
}else{
List<String> phones=new ArrayList<String>();
......@@ -473,7 +473,7 @@ public class UserQueryLogController {
if(columns.contains("idNo")){
uqi.setIdNo(ud.getIdNo());
}
if(columns.contains("phoneNo")){
if(columns.contains(Constants.PHONE_NO)){
uqi.setPhoneNo(ud.getPhoneNo());
}
if(columns.contains("userId")){
......@@ -494,10 +494,10 @@ public class UserQueryLogController {
// //不保存记录
// UserQueryLog log=new UserQueryLog();
// log.setQueryItems(columns.replace("userId","用户ID").replace("phoneNo","手机号").replace("idNo","身份证号").replace("bankCard","银行卡号").replace("address","地址"));
// log.setQueryItems(columns.replace("userId","用户ID").replace(Constants.PHONE_NO,"手机号").replace("idNo","身份证号").replace("bankCard","银行卡号").replace("address","地址"));
// log.setResultAmount(Long.valueOf(userDetails.size()));
// //转换存储
// log.setQueryCondition(key.replace("userId","用户ID").replace("phoneNo","手机号").replace("idNo","身份证号"));
// log.setQueryCondition(key.replace("userId","用户ID").replace(Constants.PHONE_NO,"手机号").replace("idNo","身份证号"));
// log.setQueryDetail(keyValues.replace("\n",";"));
// log.setLoginUserName(userName);
// userQueryLogService.save(log);
......
......@@ -551,7 +551,7 @@ public class InnerController implements IBaseController {
builder.put("name", name);
}
if (StringUtils.isNotBlank(phoneNo)) {
builder.put("phoneNo", phoneNo);
builder.put(Constants.PHONE_NO, phoneNo);
}
if (StringUtils.isNotBlank(idNo)) {
builder.put("idNo", idNo);
......
......@@ -63,7 +63,7 @@ public class UserCenterController {
if(userDetail != null) {
result.put("name", userDetail.getName());
result.put("sex", Optional.ofNullable(userDetail.getGender()).orElse(cn.quantgroup.xyqb.model.Gender.UNKNOWN).ordinal() + "");
result.put("phoneNo", userDetail.getPhoneNo().substring(0,3)+"****"+userDetail.getPhoneNo().substring(7,11));
result.put(Constants.PHONE_NO, userDetail.getPhoneNo().substring(0,3)+"****"+userDetail.getPhoneNo().substring(7,11));
}
return JsonResult.buildSuccessResult(null, result);
}
......
package cn.quantgroup.xyqb.service.user.impl;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDetail;
import cn.quantgroup.xyqb.model.Gender;
......@@ -97,7 +98,7 @@ public class UserDetailServiceImpl implements IUserDetailService {
@Override
public List<UserDetail> findByPhoneNos(List<String> phoneNos) {
return userDetailRepository.findAll((root, query, cb) -> {
query.where(root.get("phoneNo").in(phoneNos));
query.where(root.get(Constants.PHONE_NO).in(phoneNos));
return query.getRestriction();
});
}
......@@ -119,7 +120,7 @@ public class UserDetailServiceImpl implements IUserDetailService {
list.add(criteriaBuilder.equal(root.get("name").as(String.class), name));
}
if (!StringUtils.isEmpty(phoneNo)) {
list.add(criteriaBuilder.equal(root.get("phoneNo").as(String.class), phoneNo));
list.add(criteriaBuilder.equal(root.get(Constants.PHONE_NO).as(String.class), phoneNo));
}
if (!StringUtils.isEmpty(idNo)) {
list.add(criteriaBuilder.equal(root.get("idNo").as(String.class), idNo));
......@@ -150,7 +151,7 @@ public class UserDetailServiceImpl implements IUserDetailService {
list.add(criteriaQuery.getRestriction());
}
if (phoneNo!=null&&phoneNo.size()>0) {
criteriaQuery.where(root.get("phoneNo").in(phoneNo));
criteriaQuery.where(root.get(Constants.PHONE_NO).in(phoneNo));
list.add(criteriaQuery.getRestriction());
}
if (idNo!=null&&idNo.size()>0) {
......
......@@ -120,7 +120,7 @@ public class UserServiceImpl implements IUserService {
@Override
public List<User> findByPhones(List<String> phones) {
return userRepository.findAll((root, query, cb) -> {
query.where(root.get("phoneNo").as(String.class).in(phones));
query.where(root.get(Constants.PHONE_NO).as(String.class).in(phones));
return query.getRestriction();
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment