package com.haier.cartech.utils;
import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.util.http.MimeHeaders;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
@Slf4j
public class HeaderUtil {
/**
* 添加header信息
*
* @param request
* @param key
* @param value
*/
public static void setHeader(HttpServletRequest request, String key, String value) {
Class<? extends HttpServletRequest> requestClass = request.getClass();
try {
Field requestField = requestClass.getDeclaredField("request");
requestField.setAccessible(true);
Object requestObj = requestField.get(request);
Field coyoteRequestField = requestObj.getClass().getDeclaredField("coyoteRequest");
coyoteRequestField.setAccessible(true);
Object coyoteRequestObj = coyoteRequestField.get(requestObj);
Field headersField = coyoteRequestObj.getClass().getDeclaredField("headers");
headersField.setAccessible(true);
MimeHeaders headersObj = (MimeHeaders) headersField.get(coyoteRequestObj);
headersObj.removeHeader(key);
headersObj.addValue(key).setString(value);
} catch (Exception e) {
log.error("reflect set header {} error {}", key, e);
}
}
}