/**
* @Order(value = 1) 过滤器优先级处理
* 通过过滤器将ServerletRequest封装成ContentCachingRequestWrapper,body被读取后,会被它缓存
* 原因 request Body的传过来的参数,只能被读取一次,所以封装成这个类,用来缓存。
* ContentCachingRequestWrapper wrapper = (ContentCachingRequestWrapper) request;
* String body = StringUtils.toEncodedString(wrapper.getContentAsByteArray(), Charset.forName(wrapper.getCharacterEncoding()));
*/
@Component
@Order(value = 1)
public class RequestWrapperFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
//将authCode放到attrihbute中权限系统会使用
if(httpServletRequest.getHeader(RequestConstant.TOKEN)!=null){
httpServletRequest.setAttribute(RequestConstant.TOKEN,httpServletRequest.getHeader(RequestConstant.TOKEN));
}
filterChain.doFilter(new ContentCachingRequestWrapper(httpServletRequest), httpServletResponse);
}
}