// package import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.filter.GenericFilterBean; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; import java.util.List; @Component public final class IEFixerFilter extends GenericFilterBean { private final Logger log = LoggerFactory.getLogger(this.getClass()); private class IEFixerRequestWrapper extends HttpServletRequestWrapper { private IEFixerRequestWrapper(HttpServletRequest request) { super(request); } @Override public String getHeader(String name) { if (name.toLowerCase().equals("authorization")) { return null; } return super.getHeader(name); } @Override public Enumeration getHeaderNames() { List list = new ArrayList<>(); HttpServletRequest request = (HttpServletRequest)getRequest(); Enumeration e = request.getHeaderNames(); while (e.hasMoreElements()) { String n = (String)e.nextElement(); if (!n.equals("authorization") && !n.equals("Authorization")) { list.add(n); } } return Collections.enumeration(list); } } @Override public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException { if (request instanceof HttpServletRequest) { HttpServletRequest req = (HttpServletRequest) request; if (req.getCookies() != null && (req.getHeader("authorization") != null || req.getHeader("Authorization") != null)) { IEFixerRequestWrapper alteredReq = new IEFixerRequestWrapper(req); chain.doFilter(alteredReq, response); } else { chain.doFilter(req, response); } } else { chain.doFilter(request, response); } } }