Skip to content

Commit b9297c2

Browse files
committed
Using MultipartHttpServletRequest casting due to latest spring compatbility
1 parent 6c824d0 commit b9297c2

File tree

2 files changed

+55
-25
lines changed

2 files changed

+55
-25
lines changed

omod/src/main/java/org/openmrs/web/xss/XSSFilter.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,34 +19,34 @@
1919
import jakarta.servlet.ServletResponse;
2020
import jakarta.servlet.http.HttpServletRequest;
2121

22-
import org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest;
22+
import org.springframework.web.multipart.MultipartHttpServletRequest;
2323

2424
import static org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload.isMultipartContent;
2525

2626
public class XSSFilter implements Filter {
27-
27+
2828
@Override
2929
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
30-
ServletException {
31-
30+
ServletException {
31+
3232
if (!"GET".equalsIgnoreCase(((HttpServletRequest) request).getMethod())) {
3333
if (isMultipartContent((HttpServletRequest) request)) {
34-
request = new XSSMultipartRequestWrapper((DefaultMultipartHttpServletRequest) request);
34+
request = new XSSMultipartRequestWrapper((MultipartHttpServletRequest) request);
3535
} else {
3636
request = new XSSRequestWrapper((HttpServletRequest) request);
3737
}
3838
}
39-
39+
4040
chain.doFilter(request, response);
4141
}
42-
42+
4343
@Override
4444
public void init(FilterConfig filterConfig) throws ServletException {
45-
45+
4646
}
47-
47+
4848
@Override
4949
public void destroy() {
50-
50+
5151
}
5252
}

omod/src/main/java/org/openmrs/web/xss/XSSMultipartRequestWrapper.java

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,21 @@
99
*/
1010
package org.openmrs.web.xss;
1111

12-
import java.util.Enumeration;
12+
import java.util.Iterator;
1313
import java.util.List;
14+
import java.util.Map;
1415

16+
import jakarta.servlet.http.HttpServletRequestWrapper;
17+
18+
import org.springframework.http.HttpHeaders;
19+
import org.springframework.http.HttpMethod;
1520
import org.springframework.util.MultiValueMap;
1621
import org.springframework.web.multipart.MultipartFile;
17-
import org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest;
22+
import org.springframework.web.multipart.MultipartHttpServletRequest;
1823

19-
public class XSSMultipartRequestWrapper extends DefaultMultipartHttpServletRequest {
20-
21-
public XSSMultipartRequestWrapper(DefaultMultipartHttpServletRequest request) {
24+
public class XSSMultipartRequestWrapper extends HttpServletRequestWrapper implements MultipartHttpServletRequest {
25+
26+
public XSSMultipartRequestWrapper(MultipartHttpServletRequest request) {
2227
super(request);
2328
}
2429

@@ -51,27 +56,52 @@ public String[] getParameterValues(String name) {
5156
}
5257

5358
@Override
54-
public DefaultMultipartHttpServletRequest getRequest() {
55-
return (DefaultMultipartHttpServletRequest) super.getRequest();
59+
public MultipartHttpServletRequest getRequest() {
60+
return (MultipartHttpServletRequest) super.getRequest();
5661
}
57-
62+
63+
@Override
64+
public Iterator<String> getFileNames() {
65+
return getRequest().getFileNames();
66+
}
67+
5868
@Override
5969
public MultipartFile getFile(String name) {
6070
return getRequest().getFile(name);
6171
}
62-
72+
73+
@Override
74+
public List<MultipartFile> getFiles(String name) {
75+
return getRequest().getFiles(name);
76+
}
77+
78+
@Override
79+
public Map<String, MultipartFile> getFileMap() {
80+
return getRequest().getFileMap();
81+
}
82+
6383
@Override
6484
public MultiValueMap<String, MultipartFile> getMultiFileMap() {
6585
return getRequest().getMultiFileMap();
6686
}
67-
87+
6888
@Override
69-
public Enumeration<String> getParameterNames() {
70-
return getRequest().getParameterNames();
89+
public String getMultipartContentType(String paramOrFileName) {
90+
return getRequest().getMultipartContentType(paramOrFileName);
7191
}
72-
92+
7393
@Override
74-
public List<MultipartFile> getFiles(String name) {
75-
return getRequest().getFiles(name);
94+
public HttpHeaders getMultipartHeaders(String paramOrFileName) {
95+
return getRequest().getMultipartHeaders(paramOrFileName);
96+
}
97+
98+
@Override
99+
public HttpHeaders getRequestHeaders() {
100+
return getRequest().getRequestHeaders();
101+
}
102+
103+
@Override
104+
public HttpMethod getRequestMethod() {
105+
return getRequest().getRequestMethod();
76106
}
77107
}

0 commit comments

Comments
 (0)