multipart/form-data 로 전송 시 CSRF 토큰 null
- 작성자 :
- 길**쉬
- 작성일 :
- 2023-11-23 15:35:38
- 조회수 :
- 687
- 구분 :
- 개발환경 / 3.9
- 진행상태 :
- 완료
Q
현재 multipart/form-data 로 보내주면서 csrf 토큰을 보내주고 있는데, (개발자 도구에서도 확인가능) 위 사진 처럼 null 이라고 뜹니다. tomcat context.xml 설정도 했고 springMultipartFilter도 추가했습니다. 다른 post , form 방식들은 정상 작동하나, multipart/form-data 이 부분만 에러가 발생하고 있습니다
환경정보
-
- OS 정보 : window
- 표준프레임워크 버전 : 3.9
- JDK(JRE) 정보 : openjdk 1.8
- WAS 정보 : tomcat 9.0
- DB 정보 : pgsql
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
표준프레임워크의 시큐리티 간소화 서비스는
스프링 시큐리티를 기반으로 하고 있습니다.
스프링 시큐리티의 경우 Filter를 기반으로 동작하는데
enctype="multipart/form-data"로 파일업로드하는경우
기본적으로 Filter Chain을 타지 않는 제약사항이 발생합니다.
이 경우, springMultipartFilter을 다음 파일에 적용 해주셔야 합니다.
src/main/java/egovframework/com/cmm/config/EgovWebApplicationInitializer.java
주의하실점은springSecurityFilterChain 앞에 위치해야 합니다.
다음은 예시 코드입니다.
MultipartFilter springMultipartFilter = new MultipartFilter();
springMultipartFilter.setMultipartResolverBeanName("multipartResolver");
FilterRegistration.Dynamic multipartFilter = servletContext.addFilter("springMultipartFilter", springMultipartFilter);
multipartFilter.addMappingForUrlPatterns(null, false, "*.do");
FilterRegistration.Dynamic springSecurityFilterChain = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
springSecurityFilterChain.addMappingForUrlPatterns(null, false, "*");
감사합니다.
표준프레임워크센터 입니다.
표준프레임워크의 시큐리티 간소화 서비스는
스프링 시큐리티를 기반으로 하고 있습니다.
스프링 시큐리티의 경우 Filter를 기반으로 동작하는데
enctype="multipart/form-data"로 파일업로드하는경우
기본적으로 Filter Chain을 타지 않는 제약사항이 발생합니다.
이 경우, springMultipartFilter을 다음 파일에 적용 해주셔야 합니다.
src/main/java/egovframework/com/cmm/config/EgovWebApplicationInitializer.java
주의하실점은springSecurityFilterChain 앞에 위치해야 합니다.
다음은 예시 코드입니다.
MultipartFilter springMultipartFilter = new MultipartFilter();
springMultipartFilter.setMultipartResolverBeanName("multipartResolver");
FilterRegistration.Dynamic multipartFilter = servletContext.addFilter("springMultipartFilter", springMultipartFilter);
multipartFilter.addMappingForUrlPatterns(null, false, "*.do");
FilterRegistration.Dynamic springSecurityFilterChain = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
springSecurityFilterChain.addMappingForUrlPatterns(null, false, "*");
감사합니다.