package org.openstack.atlas.api.mgmt.filters; import org.openstack.atlas.api.filters.wrappers.HeadersRequestWrapper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; public class HeaderEnhancerFilter implements Filter { private FilterConfig filterConfig = null; private static final Log LOG = LogFactory.getLog(HeaderEnhancerFilter.class); private static final String X_AUTH_USER_NAME = "X-PP-User"; private static final String defaultUserName = "Rackspace Cloud"; @Override public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { if (servletRequest instanceof HttpServletRequest) { HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; // TODO: When management auth is ready make sure to properly set user name header. HeadersRequestWrapper enhancedHttpRequest = new HeadersRequestWrapper(httpServletRequest); enhancedHttpRequest.overideHeader(X_AUTH_USER_NAME); enhancedHttpRequest.addHeader(X_AUTH_USER_NAME, defaultUserName); filterChain.doFilter(enhancedHttpRequest, servletResponse); } else { filterChain.doFilter(servletRequest, servletResponse); } } @Override public void destroy() { this.filterConfig = null; } }