Author: mgrigorov
Date: Fri Dec 16 14:08:30 2011
New Revision: 1215134

URL: http://svn.apache.org/viewvc?rev=1215134&view=rev
Log:
WICKET-4251
Multipart Form and AjaxSubmitLink will result in invalid redirect after user 
session expires


Added:
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionInAjaxTest.java
      - copied unchanged from r1215133, 
wicket/branches/wicket-1.5.x/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionInAjaxTest.java
Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java?rev=1215134&r1=1215133&r2=1215134&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
 Fri Dec 16 14:08:30 2011
@@ -19,6 +19,7 @@ package org.apache.wicket;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -27,11 +28,13 @@ import org.apache.wicket.request.IReques
 import org.apache.wicket.request.IWritableRequestParameters;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.request.Url.QueryParameter;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.flow.ResetResponseException;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.RenderPageRequestHandler;
 import 
org.apache.wicket.request.handler.RenderPageRequestHandler.RedirectPolicy;
+import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.request.http.handler.RedirectRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
@@ -110,9 +113,27 @@ public class RestartResponseAtInterceptP
                        InterceptData data = new InterceptData();
                        Request request = RequestCycle.get().getRequest();
                        data.originalUrl = request.getOriginalUrl();
+                       Iterator<QueryParameter> itor = 
data.originalUrl.getQueryParameters().iterator();
+                       while (itor.hasNext())
+                       {
+                               QueryParameter parameter = itor.next();
+                               String parameterName = parameter.getName();
+                               if (WebRequest.PARAM_AJAX.equals(parameterName) 
||
+                                       
WebRequest.PARAM_AJAX_BASE_URL.equals(parameterName) ||
+                                       
WebRequest.PARAM_AJAX_REQUEST_ANTI_CACHE.equals(parameterName))
+                               {
+                                       itor.remove();
+                               }
+                       }
+
                        data.postParameters = new HashMap<String, 
List<StringValue>>();
                        for (String s : 
request.getPostParameters().getParameterNames())
                        {
+                               if (WebRequest.PARAM_AJAX.equals(s) || 
WebRequest.PARAM_AJAX_BASE_URL.equals(s) ||
+                                       
WebRequest.PARAM_AJAX_REQUEST_ANTI_CACHE.equals(s))
+                               {
+                                       continue;
+                               }
                                data.postParameters.put(s, new 
ArrayList<StringValue>(request.getPostParameters()
                                        .getParameterValues(s)));
                        }


Reply via email to