Skip to content

Instantly share code, notes, and snippets.

@sivaprasadreddy
Created September 3, 2024 16:28
Show Gist options
  • Save sivaprasadreddy/1289bfce090c98c0d14ec45fe798b798 to your computer and use it in GitHub Desktop.
Save sivaprasadreddy/1289bfce090c98c0d14ec45fe798b798 to your computer and use it in GitHub Desktop.
Spring Boot Override ContentType Header
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequestWrapper;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
import java.io.IOException;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Set;
@Component
class ContentTypeOverrideFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
String originalContentType = request.getHeader("Content-Type");
System.out.println("originalContentType = " + originalContentType);
HttpServletRequest requestToUse = new ContentTypeRequestWrapper(request);
filterChain.doFilter(requestToUse, response);
}
private static class ContentTypeRequestWrapper extends HttpServletRequestWrapper {
public ContentTypeRequestWrapper(HttpServletRequest request) {
super(request);
}
@Override
public String getContentType() {
return "application/json";
}
@Override
public String getHeader(String name) {
if("content-type".equalsIgnoreCase(name)) {
return getContentType();
}
return super.getHeader(name);
}
@Override
public Enumeration<String> getHeaders(String name) {
if("content-type".equalsIgnoreCase(name)) {
return Collections.enumeration(Set.of(getContentType()));
}
return super.getHeaders(name);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment