Commit a6d30a2a authored by 王亮's avatar 王亮

add BehaviorAuth annotation.

parent b26f3ba8
package cn.quantgroup.xyqb.aspect;
/**
* 如果接口必须需要行为验证,则加上改标记
*/
public @interface BehaviorAuth {
}
package cn.quantgroup.xyqb.filter; package cn.quantgroup.xyqb.filter;
import cn.quantgroup.xyqb.Constants; import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.aspect.BehaviorAuth;
import cn.quantgroup.xyqb.controller.req.v2.ValidateBehavior; import cn.quantgroup.xyqb.controller.req.v2.ValidateBehavior;
import cn.quantgroup.xyqb.exception.BizException; import cn.quantgroup.xyqb.exception.BizException;
import cn.quantgroup.xyqb.exception.BizExceptionEnum; import cn.quantgroup.xyqb.exception.BizExceptionEnum;
...@@ -8,6 +9,7 @@ import cn.quantgroup.xyqb.service.v2.BehaviorContext; ...@@ -8,6 +9,7 @@ import cn.quantgroup.xyqb.service.v2.BehaviorContext;
import cn.quantgroup.xyqb.session.XyqbSessionContextHolder; import cn.quantgroup.xyqb.session.XyqbSessionContextHolder;
import cn.quantgroup.xyqb.util.IpUtil; import cn.quantgroup.xyqb.util.IpUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
...@@ -26,17 +28,22 @@ public class BehaviorInterceptor implements HandlerInterceptor { ...@@ -26,17 +28,22 @@ public class BehaviorInterceptor implements HandlerInterceptor {
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String type = request.getHeader(Constants.X_BEHAVIOR_TYPE); String type = request.getHeader(Constants.X_BEHAVIOR_TYPE);
if (StringUtils.isEmpty(type) || !StringUtils.isNumeric(type)) { if (StringUtils.isEmpty(type) || !StringUtils.isNumeric(type)) {
HandlerMethod handlerMethod = (HandlerMethod) handler;
BehaviorAuth behaviorAuth = handlerMethod.getMethodAnnotation(BehaviorAuth.class);
if (behaviorAuth == null) {
return true; return true;
} }
}
String id = request.getHeader(Constants.X_BEHAVIOR_ID); String id = request.getHeader(Constants.X_BEHAVIOR_ID);
if(StringUtils.isEmpty(id)){ if (StringUtils.isEmpty(id)) {
throw new BizException(BizExceptionEnum.UN_EXIT_VERIFY_CODE); throw new BizException(BizExceptionEnum.UN_EXIT_VERIFY_CODE);
} }
Map<String, String> data = new HashMap<>(); Map<String, String> data = new HashMap<>();
data.put(Constants.X_BEHAVIOR_ID, id); data.put(Constants.X_BEHAVIOR_ID, id);
data.put(Constants.X_BEHAVIOR_IP,IpUtil.getRemoteIP(request)); data.put(Constants.X_BEHAVIOR_IP, IpUtil.getRemoteIP(request));
ValidateBehavior validateBehavior = new ValidateBehavior(); ValidateBehavior validateBehavior = new ValidateBehavior();
switch (Integer.parseInt(type)) { switch (Integer.parseInt(type)) {
...@@ -44,7 +51,7 @@ public class BehaviorInterceptor implements HandlerInterceptor { ...@@ -44,7 +51,7 @@ public class BehaviorInterceptor implements HandlerInterceptor {
String challenge = request.getHeader(Constants.X_BEHAVIOR_CHALLENGE); String challenge = request.getHeader(Constants.X_BEHAVIOR_CHALLENGE);
String validate = request.getHeader(Constants.X_BEHAVIOR_VALIDATE); String validate = request.getHeader(Constants.X_BEHAVIOR_VALIDATE);
String secCode = request.getHeader(Constants.X_BEHAVIOR_SECCODE); String secCode = request.getHeader(Constants.X_BEHAVIOR_SECCODE);
if(StringUtils.isEmpty(challenge) || StringUtils.isEmpty(validate)||StringUtils.isEmpty(secCode)){ if (StringUtils.isEmpty(challenge) || StringUtils.isEmpty(validate) || StringUtils.isEmpty(secCode)) {
throw new BizException(BizExceptionEnum.UN_EXIT_VERIFY_CODE); throw new BizException(BizExceptionEnum.UN_EXIT_VERIFY_CODE);
} }
......
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