You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2008/10/04 23:44:29 UTC
svn commit: r701717 -
/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java
Author: jcompagner
Date: Sat Oct 4 14:44:29 2008
New Revision: 701717
URL: http://svn.apache.org/viewvc?rev=701717&view=rev
Log:
from 1.3: when the request is an ajax request and the processRequest == false (onlyActivePage should be processed) then a page expired shouldnt be thrown, just a empty ajax request target should be set
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java?rev=701717&r1=701716&r2=701717&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycleProcessor.java Sat Oct 4 14:44:29 2008
@@ -24,6 +24,7 @@
import org.apache.wicket.IPageMap;
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.Page;
+import org.apache.wicket.Request;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.Session;
import org.apache.wicket.AccessStackPageMap.Access;
@@ -58,10 +59,10 @@
* org.apache.wicket.request.RequestParameters)
*/
public IRequestTarget resolve(final RequestCycle requestCycle,
- final RequestParameters requestParameters)
+ final RequestParameters requestParameters)
{
IRequestCodingStrategy requestCodingStrategy = requestCycle.getProcessor()
- .getRequestCodingStrategy();
+ .getRequestCodingStrategy();
final String path = requestParameters.getPath();
IRequestTarget target = null;
@@ -88,7 +89,7 @@
Session session = Session.get();
IPageMap pageMap = session.pageMapForName(requestParameters.getPageMapName(),
- false);
+ false);
if (pageMap == null)
{
// requested pagemap no longer exists - ignore this
@@ -101,11 +102,10 @@
if (accessStackPageMap.getAccessStack().size() > 0)
{
final Access access = (Access)accessStackPageMap.getAccessStack()
- .peek();
+ .peek();
- final int pageId = Integer
- .parseInt(Strings.firstPathComponent(requestParameters
- .getComponentPath(), Component.PATH_SEPARATOR));
+ final int pageId = Integer.parseInt(Strings.firstPathComponent(
+ requestParameters.getComponentPath(), Component.PATH_SEPARATOR));
if (pageId != access.getId())
{
@@ -117,7 +117,7 @@
{
final int version = requestParameters.getVersionNumber();
if (version != Page.LATEST_VERSION &&
- version != access.getVersion())
+ version != access.getVersion())
{
// version is no longer the active version -
// ignore this request
@@ -145,7 +145,16 @@
}
else
{
- throw new PageExpiredException("Request cannot be processed");
+ Request request = requestCycle.getRequest();
+ if (request instanceof WebRequest && ((WebRequest)request).isAjax())
+ {
+ // if processRequest is false in an ajax request just have an empty ajax target
+ target = EmptyAjaxRequestTarget.getInstance();
+ }
+ else
+ {
+ throw new PageExpiredException("Request cannot be processed");
+ }
}
}
// See whether this request points to a shared resource
@@ -179,10 +188,10 @@
// If the target is still null and there was a component path
// then the Page could not be located in the session
throw new PageExpiredException(
- "Cannot find the rendered page in session [pagemap=" +
- requestParameters.getPageMapName() + ",componentPath=" +
- requestParameters.getComponentPath() + ",versionNumber=" +
- requestParameters.getVersionNumber() + "]");
+ "Cannot find the rendered page in session [pagemap=" +
+ requestParameters.getPageMapName() + ",componentPath=" +
+ requestParameters.getComponentPath() + ",versionNumber=" +
+ requestParameters.getVersionNumber() + "]");
}
}
else
@@ -190,28 +199,25 @@
// a target was found, but not by looking up a mount. check whether
// this is allowed
if (Application.get().getSecuritySettings().getEnforceMounts() &&
- requestCodingStrategy.pathForTarget(target) != null)
+ requestCodingStrategy.pathForTarget(target) != null)
{
String msg = "Direct access not allowed for mounted targets";
// the target was mounted, but we got here via another path
// : deny the request
log.error(msg + " [request=" + requestCycle.getRequest() + ",target=" + target +
- ",session=" + Session.get() + "]");
+ ",session=" + Session.get() + "]");
throw new AbortWithWebErrorCodeException(HttpServletResponse.SC_FORBIDDEN, msg);
}
}
- // (WICKET-1356) in case no target was found, return null here. RequestCycle will deal with it
- // possible letting wicket filter to pass the request down the filter chain
+ // (WICKET-1356) in case no target was found, return null here. RequestCycle will deal with
+ // it
+ // possible letting wicket filter to pass the request down the filter chain
/*
- if (target == null)
- {
- // if we get here, we have no recognized Wicket target, and thus
- // regard this as a external (non-wicket) resource request on
- // this server
- return resolveExternalResource(requestCycle);
- }
- */
+ * if (target == null) { // if we get here, we have no recognized Wicket target, and thus //
+ * regard this as a external (non-wicket) resource request on // this server return
+ * resolveExternalResource(requestCycle); }
+ */
return target;
}