spring boot 过滤器往 headers 添加参数
在过滤器中增加以下代码即可
CustomHttpServletRequest headerMapRequestWrapper = new CustomHttpServletRequest(HttpServletRequest);
//payload中包含用户信息设置到Header中去
headerMapRequestWrapper.addHeader(“user”, payload);
FilterChain.doFilter(headerMapRequestWrapper, response);
创建一个资源类,被引用
package com.resouce.config;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.util.*;
/**
* @author: yuyezhen
* @date: 2023 06 25 15 58
* @description:
*/
public class CustomHttpServletRequest extends HttpServletRequestWrapper {
private final Map<String, String> hashMap;
/**
* 初始化
*
* @param request
*/
public CustomHttpServletRequest(HttpServletRequest request) {
super(request);
hashMap = new HashMap<>();
}
/**
* 添加key、value
*
* @param key
* @param value
*/
public void addHeader(String key, String value) {
hashMap.put(key, value);
}
/**
* 获得value
*
* @param key
* @return
*/
@Override
public String getHeader(String key) {
String value = super.getHeader(key);
if (value == null) {
value = hashMap.get(key);
}
return value;
}
/**
* 获得value集合
*
* @param key
* @return
*/
@Override
public Enumeration<String> getHeaders(String key) {
Enumeration<String> enumeration = super.getHeaders(key);
List<String> valueList = Collections.list(enumeration);
if (hashMap.containsKey(key)) {
valueList.add(hashMap.get(key));
}
return Collections.enumeration(valueList);
}
/**
* 获得key集合
*
* @return
*/
@Override
public Enumeration<String> getHeaderNames(){
List<String> keyList = Collections.list(super.getHeaderNames());
keyList.addAll(hashMap.keySet());
return Collections.enumeration(keyList);
}
}