如何在Spring Security中使用CSRF登录后从以前的URL获取POST提交的表单数据?

时间:2017-05-09 12:15:28

标签: java spring jsp spring-mvc spring-security

我尝试使用POST表单提交重定向到以前的URL,我成功登录后我配置下面的bean我可以使用POST提交重定向但在这里我试图上传文件,但我无法获取multipart对象登录后,即我得到文件对象为null。请事先帮助我实现这一点。这是我的bean和XML配置。 spring-security.xml

<http>
<csrf />
<request-cache ref="requestCache"  />
</http>
<beans:bean id="requestCache" class="com.web.listeners.Test" />

Test.java

public class Test extends HttpSessionRequestCache {
       @Override
       public void saveRequest(HttpServletRequest request, HttpServletResponse 
       response)
       {
          final String SAVED_REQUEST = "SPRING_SECURITY_SAVED_REQUEST";
          DefaultSavedRequest savedRequest = new DefaultSavedRequest(request, 
          new PortResolverImpl());
          request.getSession().setAttribute(SAVED_REQUEST, savedRequest);

       }
}

test.jsp

<c:url value="/file/uploadFile?${_csrf.parameterName}=${_csrf.token}" var="uploadFileURL"/>
                    <form:form action="${uploadFileURL}" method="post" enctype="multipart/form-data" modelAttribute="multiPartVo">
                    <input id="file" name="file" type="file" />
                    <button type="submit" value="SAVE" ></button>
                    </form:form>

0 个答案:

没有答案