File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ package apijson .boot ;
2+
3+ import jakarta .servlet .FilterChain ;
4+ import jakarta .servlet .ServletException ;
5+ import jakarta .servlet .http .HttpServletRequest ;
6+ import jakarta .servlet .http .HttpServletRequestWrapper ;
7+ import jakarta .servlet .http .HttpServletResponse ;
8+ import org .springframework .stereotype .Component ;
9+ import org .springframework .web .filter .OncePerRequestFilter ;
10+
11+ import java .io .IOException ;
12+
13+ @ Component
14+ public class RepeatHeaderFilter extends OncePerRequestFilter {
15+
16+ @ Override
17+ protected void doFilterInternal (HttpServletRequest request , HttpServletResponse response , FilterChain filterChain )
18+ throws ServletException , IOException {
19+
20+ HttpServletRequestWrapper wrapper = new HttpServletRequestWrapper (request ) {
21+ @ Override
22+ public String getHeader (String name ) {
23+ if (name != null && ! name .toLowerCase ().startsWith ("x-" )) {
24+ String xVal = request .getHeader ("x-" + name .toLowerCase ());
25+ if (xVal != null && ! xVal .isEmpty ()) {
26+ return xVal ;
27+ }
28+ }
29+
30+ // if (name != null && name.toLowerCase().startsWith("x-")) {
31+ // String xVal = request.getHeader(name);
32+ // if (xVal == null || xVal.isEmpty()) {
33+ // return request.getHeader(name.substring(2).toLowerCase());
34+ // }
35+ // }
36+
37+ return super .getHeader (name );
38+ }
39+ };
40+
41+ filterChain .doFilter (wrapper , response );
42+ }
43+ }
You can’t perform that action at this time.
0 commit comments