拦截器返回false时,设置返回的body
最近写了一个demo,方便大家练习jmeter压测脚本以及接口自动化
其中一个功能是商品管理,需要拦截器鉴权token,如果失败返回false,此时要设置返回的body
拦截器中
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String jsonBody = new BodyReaderHttpServletRequestWrapper(request).getBodyString(request);
UserReq reqParam = JSONObject.toJavaObject(JSONObject.parseObject(jsonBody), UserReq.class);
// 校验是否具备权限
String token = reqParam.getToken();
if (token==null || token.isEmpty()){
ResultMsg fail = ResultMsg.fail(ResultCode.FAIL_TOKEN_NULL);
preHandleFalseResponseJsonBody(fail, response);
return false;
} else if (redisUtil.exists(token)){
// 续时
redisUtil.expire(token, 600);
return true;
} else {
ResultMsg fail = ResultMsg.fail(ResultCode.FAIL_TOKEN_EXPIRE);
preHandleFalseResponseJsonBody(fail, response);
return false;
}
}
设置返回json内容的方法
private void preHandleFalseResponseJsonBody(ResultMsg resultMsg,HttpServletResponse response) throws Exception {
response.setContentType("application/json; charset=utf-8");
PrintWriter writer = response.getWriter();
String s = JSONObject.toJSONString(resultMsg);
writer.print(s);
writer.close();
response.flushBuffer();
}
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!

浙公网安备 33010602011771号