package io.cattle.platform.api.parser; import java.util.Arrays; import java.util.Collections; import java.util.Enumeration; import java.util.HashSet; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; public class ProjectHttpServletRequest extends HttpServletRequestWrapper { public static final String PROJECT_HEADER = "X-API-Project-Id"; String projectId; String servletPath; public ProjectHttpServletRequest(HttpServletRequest request, String projectId, String servletPath) { super(request); this.projectId = projectId; this.servletPath = servletPath; } @Override public String getHeader(String name) { if (PROJECT_HEADER.equalsIgnoreCase(name)) { return projectId; } else { return super.getHeader(name); } } @SuppressWarnings("rawtypes") @Override public Enumeration getHeaders(String name) { if (PROJECT_HEADER.equalsIgnoreCase(name)) { return Collections.enumeration(Arrays.asList(projectId)); } else { return super.getHeaders(name); } } @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public Enumeration getHeaderNames() { Set names = new HashSet(Collections.list(super.getHeaderNames())); names.add(PROJECT_HEADER); return Collections.enumeration(names); } @Override public String getServletPath() { return servletPath; } }