multipartfilter 적용시 multipart/form-data 파일 업로드실패
- 작성자 :
- 알***요
- 작성일 :
- 2023-08-19 23:00:37
- 조회수 :
- 1,086
- 구분 :
- 실행환경 / 3.5
- 진행상태 :
- 완료
Q
기존에 잘 사용하던 소스인데
xss처리관련해서
htmltagfilter 와
multipartfilter 를 걸었습니다
필터는 제대로 작동하는데
multipartform에서 첨부파일 저장시
MultipartHttpServletRequest 로 받는데
디버깅시 MultipartHttpServletRequest 의 request 안에 request엔 내용이 담겨져는 있는데
miltipartfile 은 null로 들어어와서 이후 파일관련 처리하는작업들이 제대로 동작하지않습니다
multipartfilter 걸면 필터가 잘 걸리면서 파일업로드시 null 되는거같고 필터끄면
값은 잘 받지만 multipartfrom에서 필터가안걸리고..
원인은 filter가 2개걸리면서 파일관련정보를 못받는거같은데 어찌해야할까요..
기존정보 검색해서 시도해본방법은
/* 에서 *.do로 바꾸기
<!-- <init-param> -->
<!-- <param-name>multipartResolverBeanName</param-name> -->
<!-- <param-value>multipartResolver</param-value> -->
<!-- </init-param> --> 지우기
multipartfilter 밑에 htmltagfilter 두기
allowCasualMultipartParsing="true"
htmltag필터에서 lucy필터로 수정.,..(마찬가지로 업로드안되서 htmltagfilter로 롤백)
WebUtils.getNativeRequest 는 WebUtils가 improt가 안되길래 스프링버전때문에 그런가보다 하고 넘겼습니다
common.xml 쪽에서 filterMultipartResolver 로 설정하기 등 이것저것 다해봐도 안되고
결국 필터적용을끄면 잘되고 그러네요,,,
xss처리관련해서
htmltagfilter 와
multipartfilter 를 걸었습니다
필터는 제대로 작동하는데
multipartform에서 첨부파일 저장시
MultipartHttpServletRequest 로 받는데
디버깅시 MultipartHttpServletRequest 의 request 안에 request엔 내용이 담겨져는 있는데
miltipartfile 은 null로 들어어와서 이후 파일관련 처리하는작업들이 제대로 동작하지않습니다
multipartfilter 걸면 필터가 잘 걸리면서 파일업로드시 null 되는거같고 필터끄면
값은 잘 받지만 multipartfrom에서 필터가안걸리고..
원인은 filter가 2개걸리면서 파일관련정보를 못받는거같은데 어찌해야할까요..
기존정보 검색해서 시도해본방법은
/* 에서 *.do로 바꾸기
<!-- <init-param> -->
<!-- <param-name>multipartResolverBeanName</param-name> -->
<!-- <param-value>multipartResolver</param-value> -->
<!-- </init-param> --> 지우기
multipartfilter 밑에 htmltagfilter 두기
allowCasualMultipartParsing="true"
htmltag필터에서 lucy필터로 수정.,..(마찬가지로 업로드안되서 htmltagfilter로 롤백)
WebUtils.getNativeRequest 는 WebUtils가 improt가 안되길래 스프링버전때문에 그런가보다 하고 넘겼습니다
common.xml 쪽에서 filterMultipartResolver 로 설정하기 등 이것저것 다해봐도 안되고
결국 필터적용을끄면 잘되고 그러네요,,,
환경정보
-
- OS 정보 : windows
- 표준프레임워크 버전 : 3.5.1
- JDK(JRE) 정보 : 1.7
- WAS 정보 : tomcat7.0
- DB 정보 : oracle
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
아래 예시와 같이
(MultipartHttpServletRequest) request; 로 변환하여 사용하시는 경우
ex)
@RequestMapping(value="/uss/ion/ans/EgovAnnvrsryManageListPop.do")
public String selectAnnvrsryManageBnde( final HttpServletRequest request, ...
final MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
...
다음과 같이
MultipartHttpServletRequest로 직접 받아서 사용하시는 형태로
변환하여 처리해 보시기 바랍니다.
ex)
@RequestMapping(value="/uss/ion/ans/EgovAnnvrsryManageListPopAction.do")
public String selectAnnvrsryManageBndeAction( final MultipartHttpServletRequest multiRequest, ...
이 밖에 조치해보신 방법 외에도
개발환경에 설치되어 있는 보안프로그램에 의해 영향이나
운영환경의 경우 방화벽에 대한 점검 등이 필요해 보입니다.
감사합니다.
표준프레임워크 센터입니다.
아래 예시와 같이
(MultipartHttpServletRequest) request; 로 변환하여 사용하시는 경우
ex)
@RequestMapping(value="/uss/ion/ans/EgovAnnvrsryManageListPop.do")
public String selectAnnvrsryManageBnde( final HttpServletRequest request, ...
final MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
...
다음과 같이
MultipartHttpServletRequest로 직접 받아서 사용하시는 형태로
변환하여 처리해 보시기 바랍니다.
ex)
@RequestMapping(value="/uss/ion/ans/EgovAnnvrsryManageListPopAction.do")
public String selectAnnvrsryManageBndeAction( final MultipartHttpServletRequest multiRequest, ...
이 밖에 조치해보신 방법 외에도
개발환경에 설치되어 있는 보안프로그램에 의해 영향이나
운영환경의 경우 방화벽에 대한 점검 등이 필요해 보입니다.
감사합니다.