拦截器返回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
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!