/**
* 这个方法在public class JWTXXXFilter extends BasicHttpAuthenticationFilter.executeLogin(..)中调用,不知怎么
* 同一个请求调用了2次此方法,导致报错“UT010019: Response already commited”,临时解决办法(方法中有注释的代码块部分)
*/
private void response401(String content, HttpServletRequest httpRequest, HttpServletResponse httpResponse) {
ResponseData<String> data = new ResponseData<>(ResponseStateEnum.UNAUTHORIZED);
data.setContent(content);
setHeader(httpRequest, httpResponse);
try {
if (httpResponse.isCommitted()) { //这里需要判断请求响应是否已经完成,不知道怎么了会再次进入这里
return;
}
httpResponse.reset();
httpResponse.setContentType("application/json");
httpResponse.setCharacterEncoding("utf-8");
PrintWriter printWriter = httpResponse.getWriter();
printWriter.append(JsonMapper.toJsonString(data));
printWriter.flush();
} catch (IOException e) {
e.printStackTrace();
}
}