16 changed files with 175 additions and 85 deletions
			
			
		@ -0,0 +1,22 @@ | 
				
			|||||||
 | 
					package com.hnac.hzinfo.inspect.offline.filter; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.*; | 
				
			||||||
 | 
					import javax.servlet.annotation.WebFilter; | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest; | 
				
			||||||
 | 
					import java.io.IOException; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * @author ysj | 
				
			||||||
 | 
					 * @version 4.0.0 | 
				
			||||||
 | 
					 * @create 2024-07-24-19:07 | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					@WebFilter(filterName = "ContentTypeFilter", urlPatterns = "/offline/syncOfflineDataToOnline") | 
				
			||||||
 | 
					public class ContentTypeFilter implements Filter { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override | 
				
			||||||
 | 
					    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { | 
				
			||||||
 | 
					        HttpServletRequest httpRequest = (HttpServletRequest) request; | 
				
			||||||
 | 
					        ContentTypeRequestWrapper wrappedRequest = new ContentTypeRequestWrapper(httpRequest); | 
				
			||||||
 | 
					        chain.doFilter(wrappedRequest, response); | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,53 @@ | 
				
			|||||||
 | 
					package com.hnac.hzinfo.inspect.offline.filter; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest; | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequestWrapper; | 
				
			||||||
 | 
					import java.util.Collections; | 
				
			||||||
 | 
					import java.util.Enumeration; | 
				
			||||||
 | 
					import java.util.HashMap; | 
				
			||||||
 | 
					import java.util.Map; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * @author ysj | 
				
			||||||
 | 
					 * @version 4.0.0 | 
				
			||||||
 | 
					 * @create 2024-07-24-19:08 | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					public class ContentTypeRequestWrapper  extends HttpServletRequestWrapper { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final String newContentType; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ContentTypeRequestWrapper(HttpServletRequest request) { | 
				
			||||||
 | 
					        super(request); | 
				
			||||||
 | 
					        // 你想要设置的新Content-Type
 | 
				
			||||||
 | 
					        this.newContentType = "form-data"; | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override | 
				
			||||||
 | 
					    public String getHeader(String name) { | 
				
			||||||
 | 
					        if ("Content-Type".equalsIgnoreCase(name)) { | 
				
			||||||
 | 
					            return newContentType; | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					        return super.getHeader(name); | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override | 
				
			||||||
 | 
					    public Enumeration<String> getHeaders(String name) { | 
				
			||||||
 | 
					        if ("Content-Type".equalsIgnoreCase(name)) { | 
				
			||||||
 | 
					            return Collections.enumeration(Collections.singleton(newContentType)); | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					        return super.getHeaders(name); | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override | 
				
			||||||
 | 
					    public Enumeration<String> getHeaderNames() { | 
				
			||||||
 | 
					        Map<String, String> headers = new HashMap<>(); | 
				
			||||||
 | 
					        HttpServletRequest originalRequest = (HttpServletRequest) getRequest(); | 
				
			||||||
 | 
					        Enumeration<String> headerNames = originalRequest.getHeaderNames(); | 
				
			||||||
 | 
					        while (headerNames.hasMoreElements()) { | 
				
			||||||
 | 
					            String headerName = headerNames.nextElement(); | 
				
			||||||
 | 
					            headers.put(headerName, headerName); | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					        headers.put("Content-Type", "Content-Type"); | 
				
			||||||
 | 
					        return Collections.enumeration(headers.keySet()); | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					} | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue