我已经将访问决策管理器配置为在由Servlet处理之前检查请求,关键是:
HttpServletRequest request = (HttpServletRequest) RequestContextHolder.currentRequestAttributes().getRequest();
都好。但是,当请求是
enctype="multipart/form-data"
时,当MultipartHttpServletRequest
仅返回RequestContextHolder.currentRequestAttributes().getRequest()
时,如何保留HttpServletRequest
?我正在使用Spring 2.5。
最佳答案
MultipartHttpServletRequest
是n特定于Spring的接口,用于处理多部分表单提交。默认实现是DefaultMultipartHttpServletRequest
,它具有一个采用HttpServletRequest
的构造函数。
所以:
HttpServletRequest originalRequest = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
MultipartHttpServletRequest multiPartRequest = new DefaultMultipartHttpServletRequest(originalRequest);