You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2010/08/25 00:48:50 UTC
svn commit: r988751 - in
/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket: ./
markup/html/ markup/html/resources/ protocol/http/request/ request/
Author: ivaynberg
Date: Tue Aug 24 22:48:49 2010
New Revision: 988751
URL: http://svn.apache.org/viewvc?rev=988751&view=rev
Log:
Packaged Resource URLs encoded with jsessionid
Issue: WICKET-2999
Modified:
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/ResourceReference.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/PackageResourceReference.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/CompressedResourceReference.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/JavascriptResourceReference.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/RequestParameters.java
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/ResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/ResourceReference.java?rev=988751&r1=988750&r2=988751&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/ResourceReference.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/ResourceReference.java Tue Aug 24 22:48:49 2010
@@ -71,6 +71,9 @@ public class ResourceReference implement
/** The style of the resource */
private String style;
+ /** Whether or not this resource reference is stateless */
+ private boolean stateless;
+
/**
* Constructs a ResourceReference with the given scope and name. The scope is used as a
* namespace and the scope together with the name must uniquely identify the reference.
@@ -329,4 +332,26 @@ public class ResourceReference implement
return null;
}
}
+
+ /**
+ * @see #setStateless(boolean)
+ * @return stateless falg
+ */
+ public boolean isStateless()
+ {
+ return stateless;
+ }
+
+ /**
+ * Sets whether or not the resource pointed to by this reference requires a session. Urls to
+ * resources that do not require a session will have their jsessionid stripped.
+ *
+ * @param stateless
+ */
+ public void setStateless(boolean stateless)
+ {
+ this.stateless = stateless;
+ }
+
+
}
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/PackageResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/PackageResourceReference.java?rev=988751&r1=988750&r2=988751&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/PackageResourceReference.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/PackageResourceReference.java Tue Aug 24 22:48:49 2010
@@ -71,6 +71,7 @@ public class PackageResourceReference ex
{
setLocale(((PackageResource)getResource()).getLocale());
}
+ setStateless(true);
}
/**
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/CompressedResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/CompressedResourceReference.java?rev=988751&r1=988750&r2=988751&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/CompressedResourceReference.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/CompressedResourceReference.java Tue Aug 24 22:48:49 2010
@@ -42,6 +42,7 @@ public class CompressedResourceReference
public CompressedResourceReference(Class<?> scope, String name)
{
super(scope, name);
+ setStateless(true);
}
/**
@@ -51,6 +52,7 @@ public class CompressedResourceReference
public CompressedResourceReference(Class<?> scope, String name, Locale locale, String style)
{
super(scope, name, locale, style);
+ setStateless(true);
}
/**
@@ -59,6 +61,7 @@ public class CompressedResourceReference
public CompressedResourceReference(String name)
{
super(name);
+ setStateless(true);
}
/**
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/JavascriptResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/JavascriptResourceReference.java?rev=988751&r1=988750&r2=988751&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/JavascriptResourceReference.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/resources/JavascriptResourceReference.java Tue Aug 24 22:48:49 2010
@@ -45,6 +45,7 @@ public class JavascriptResourceReference
public JavascriptResourceReference(Class<?> scope, String name, Locale locale, String style)
{
super(scope, name, locale, style);
+ setStateless(true);
}
/**
@@ -56,6 +57,7 @@ public class JavascriptResourceReference
public JavascriptResourceReference(Class<?> scope, String name)
{
super(scope, name);
+ setStateless(true);
}
/**
@@ -66,6 +68,7 @@ public class JavascriptResourceReference
public JavascriptResourceReference(String name)
{
super(name);
+ setStateless(true);
}
@Override
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java?rev=988751&r1=988750&r2=988751&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java Tue Aug 24 22:48:49 2010
@@ -257,6 +257,8 @@ public class WebRequestCodingStrategy im
boolean portletRequest = requestContext.isPortletRequest();
boolean sharedResourceURL = false;
+ boolean stripJsessionId = false;
+
if (url != null && !portletRequest)
{
// Do nothing - we've found the URL and it's mounted.
@@ -280,6 +282,9 @@ public class WebRequestCodingStrategy im
url = requestContext.encodeSharedResourceURL(url == null ? encode(requestCycle,
(ISharedResourceRequestTarget)requestTarget) : url);
sharedResourceURL = true;
+
+ stripJsessionId = ((ISharedResourceRequestTarget)requestTarget).getRequestParameters()
+ .isStateless();
}
else if (requestTarget instanceof PageReferenceRequestTarget)
{
@@ -379,7 +384,13 @@ public class WebRequestCodingStrategy im
result = "./";
}
}
- return requestCycle.getOriginalResponse().encodeURL(result);
+
+ CharSequence encoded = requestCycle.getOriginalResponse().encodeURL(result);
+ if (stripJsessionId)
+ {
+ encoded = Strings.stripJSessionId(encoded);
+ }
+ return encoded;
}
// Just return null instead of throwing an exception. So that it can be
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/RequestParameters.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/RequestParameters.java?rev=988751&r1=988750&r2=988751&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/RequestParameters.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/RequestParameters.java Tue Aug 24 22:48:49 2010
@@ -90,6 +90,9 @@ public class RequestParameters implement
/** the request query string */
private String queryString;
+ /** whether the url to the request with these parameters requires a session */
+ private boolean stateless = true;
+
/**
* Construct.
*/
@@ -366,6 +369,27 @@ public class RequestParameters implement
}
/**
+ * @see #setStateless(boolean)
+ * @return stateless flag
+ */
+ public boolean isStateless()
+ {
+ return stateless;
+ }
+
+ /**
+ * Sets whether or not this request can be processed without a session present. If a url is
+ * encoded for a request with these parameters jsessionid will be stripped, this is useful when
+ * rendering urls to packaged resources and other artifacts that do not require a session.
+ *
+ * @param stateless
+ */
+ public void setStateless(boolean stateless)
+ {
+ this.stateless = stateless;
+ }
+
+ /**
* @see java.lang.Object#toString()
*/
@Override