class ServiceStrategyRouteFilterRequest extends HttpServletRequestWrapper {
    private HttpServletRequest originalRequest;

    private Map<String, String> headers;

    public ServiceStrategyRouteFilterRequest(HttpServletRequest request) {
        super(request);

        this.originalRequest = request;

        // 不区分大小写Key的Map用于适配不同的Web容器对于大小写Header的不同处理逻辑
        headers = new LinkedCaseInsensitiveMap<String>();
    }

    public void addHeader(String name, String value) {
        headers.put(name, value);
    }

    @Override
    public String getHeader(String name) {
        if (headers.containsKey(name)) {
            return headers.get(name);
        }

        return super.getHeader(name);
    }

    @Override
    public Enumeration<String> getHeaderNames() {<FILL_FUNCTION_BODY>}

    @Override
    public Enumeration<String> getHeaders(String name) {
        if (headers.containsKey(name)) {
            List<String> values = Arrays.asList(headers.get(name));

            return Collections.enumeration(values);
        }

        return super.getHeaders(name);
    }

    public HttpServletRequest getOriginalRequest() {
        return originalRequest;
    }
}

        if (MapUtils.isNotEmpty(headers)) {
            List<String> names = Collections.list(super.getHeaderNames());
            for (String name : headers.keySet()) {
                if (!names.contains(name)) {
                    names.add(name);
                }
            }

            return Collections.enumeration(names);
        }

        return super.getHeaderNames();
    
<no_super_class>