On Fri, Nov 18, 2011 at 11:10 AM, thomas willomitzer <[email protected]> wrote: > Good question. I guess I'll hassle the people at the tomcat users list. > It's not a wicket issue as you pointed out. > Using ONE_PASS_RENDER is fine as a workaround ...
Another workaround is to use a filter path, i.e. WicketFilter to listen at /app/* instead of /*. But this issue looks like https://issues.apache.org/jira/browse/WICKET-3841 and this problem has been fixed in Tomcat 7.0.18 > > Thanks > Willo > > On Thu, Nov 17, 2011 at 9:47 PM, Igor Vaynberg <[email protected]>wrote: > >> so what do we need to do to fix it on our end? >> >> -igor >> >> On Thu, Nov 17, 2011 at 11:34 AM, thomas willomitzer <[email protected]> >> wrote: >> > No I'm afraid ... just tried >> > >> > On Thu, Nov 17, 2011 at 8:19 PM, Igor Vaynberg <[email protected] >> >wrote: >> > >> >> would adding a bogus query param help there? so the url will look like >> >> this: localhost/?1&bogus=1 >> >> >> >> -igor >> >> >> >> On Thu, Nov 17, 2011 at 10:21 AM, thomas willomitzer <[email protected]> >> >> wrote: >> >> > Fair enough ... >> >> > >> >> > Looking at org.apache.catalina.connector.Response a url of e.g. >> >> > http://localhost/?1 results in a path of length 0 which doesn't >> append >> >> the >> >> > jsessionid. >> >> > >> >> > if( sb.length() > 0 ) { // jsessionid can't be first. >> >> > >> >> > It's obviously a tomcat issue ... but given the fact that tomcat is >> >> widely >> >> > used ... can't we do something about that? >> >> > Well I did by using ONE_PASS_RENDER ;) >> >> > >> >> > Thanks >> >> > Willo >> >> > >> >> > /** >> >> > * Return the specified URL with the specified session identifier >> >> > * suitably encoded. >> >> > * >> >> > * @param url URL to be encoded with the session id >> >> > * @param sessionId Session id to be included in the encoded URL >> >> > */ >> >> > protected String toEncoded(String url, String sessionId) { >> >> > >> >> > if ((url == null) || (sessionId == null)) >> >> > return (url); >> >> > >> >> > String path = url; >> >> > String query = ""; >> >> > String anchor = ""; >> >> > int question = url.indexOf('?'); >> >> > if (question >= 0) { >> >> > path = url.substring(0, question); >> >> > query = url.substring(question); >> >> > } >> >> > int pound = path.indexOf('#'); >> >> > if (pound >= 0) { >> >> > anchor = path.substring(pound); >> >> > path = path.substring(0, pound); >> >> > } >> >> > StringBuilder sb = new StringBuilder(path); >> >> > if( sb.length() > 0 ) { // jsessionid can't be first. >> >> > sb.append(";"); >> >> > >> >> sb.append(ApplicationSessionCookieConfig.getSessionUriParamName( >> >> > request.getContext())); >> >> > sb.append("="); >> >> > sb.append(sessionId); >> >> > } >> >> > sb.append(anchor); >> >> > sb.append(query); >> >> > return (sb.toString()); >> >> > >> >> > } >> >> > >> >> > >> >> > On Thu, Nov 17, 2011 at 6:52 PM, Igor Vaynberg < >> [email protected] >> >> >wrote: >> >> > >> >> >> as long as we are passing the /?1 url through >> >> >> servletresponse#encoderedirecturl() tomcat is responsible for >> >> >> appending the JSESSIONID if its not yet available in a cookie... >> >> >> >> >> >> -igor >> >> >> >> >> >> On Thu, Nov 17, 2011 at 2:16 AM, thomas willomitzer <[email protected]> >> >> wrote: >> >> >> > Hi, >> >> >> > >> >> >> > Thanks for the advice! I follwed and traced the problem. Think >> it's a >> >> >> > combination of Wicket and Tomcat... >> >> >> > >> >> >> > When i send the request for http://localhost/, wicket get's the >> >> session >> >> >> > from tomcat, renders the page and buffers the response (since >> >> >> > ONE_PASS_RENDER isn't default). >> >> >> > Wicket (1.5.3) also appends the ?1 and sends a 302 redirect to >> >> >> > http://localhost/?1 (in the 302 response header the cookie get's >> >> >> correctly >> >> >> > set - but not appended to the redirect URL). >> >> >> > Tomcat (7.0.22) doesn't append jsessionid to an url like >> >> >> http://localhost/?1. >> >> >> > Looks like it's still the "empty path" and tomcat problem that >> >> prohibits >> >> >> > the appending of jsessionid. >> >> >> > >> >> >> > Now when I don't use cookies and follow the request to >> >> >> > http://localhost/?1how should wicket know which session we're >> talking >> >> >> > about? >> >> >> > >> >> >> > Please note that this problem doesn't exist when sending a request >> to >> >> >> e.g. >> >> >> > http://localhost/login. I get a correct redirect to >> >> >> > http://localhost/login;jsessionid=xxxxxxxxxx. >> >> >> > >> >> >> > I could think of the following "workaround": >> >> >> > 1.) For the homepage use ONE_PASS_RENDER >> >> >> > >> >> >> > Is this a tomcat/wicket combination problem or am I doing something >> >> >> wrong? >> >> >> > >> >> >> > Many thanks >> >> >> > Willo >> >> >> > >> >> >> > On Wed, Nov 16, 2011 at 7:57 PM, Bertrand Guay-Paquet < >> >> >> > [email protected]> wrote: >> >> >> > >> >> >> >> I don't know of any other specific causes unfortunately... >> >> >> >> >> >> >> >> Try setting a breakpoint in RequestCycle#onBeginRequest() and see >> >> what >> >> >> >> happens. Try your page constructor too since it might be closer to >> >> the >> >> >> >> source of the problem. >> >> >> >> >> >> >> >> Good luck! >> >> >> >> Bertrand >> >> >> >> >> >> >> >> >> >> >> >> On 16/11/2011 12:21 PM, thomas willomitzer wrote: >> >> >> >> >> >> >> >>> Hi, >> >> >> >>> >> >> >> >>> Thanks I checked but no getPageParameters() override ;) >> >> >> >>> >> >> >> >>> Regards >> >> >> >>> Thomas >> >> >> >>> >> >> >> >>> On Wed, Nov 16, 2011 at 6:04 PM, Bertrand Guay-Paquet< >> >> >> >>> [email protected]> wrote: >> >> >> >>> >> >> >> >>> Hi, >> >> >> >>>> >> >> >> >>>> I had a redirect loop once because I added an override to >> >> >> >>>> Page#getPageParameters() by mistake. I wanted to use my method >> to >> >> >> >>>> generate >> >> >> >>>> a new PageParameters instance for a page but overriding the Page >> >> >> method >> >> >> >>>> gave your result. >> >> >> >>>> >> >> >> >>>> It's worth a shot! >> >> >> >>>> >> >> >> >>>> Regards, >> >> >> >>>> Bertrand >> >> >> >>>> >> >> >> >>>> >> >> >> >>>> On 16/11/2011 11:40 AM, thomas willomitzer wrote: >> >> >> >>>> >> >> >> >>>> Dear All, >> >> >> >>>>> >> >> >> >>>>> I've managed to get the jsessionid appended correctly when >> >> >> requesting a >> >> >> >>>>> page without cookies enabled (wicket 1.5.3, tomcat 7.0.22). >> >> >> >>>>> >> >> >> >>>>> I get >> >> >> >>>>> curl -v --insecure https://localhost/ -> Location: >> >> >> >>>>> https://localhost/?1 >> >> >> >>>>> curl -v --insecure https://localhost/?1 -> Location: >> >> >> >>>>> >> >> >> >> https://localhost/.;****jsessionid=****D62D2D693854214C847E7A75439909** >> >> >> >>>>> **A3< >> >> >> >> https://localhost/.;**jsessionid=**D62D2D693854214C847E7A75439909**A3> >> >> >> >>>>> < >> >> >> >> https://localhost/.;**jsessionid=**D62D2D693854214C847E7A75439909**A3< >> >> >> https://localhost/.;jsessionid=D62D2D693854214C847E7A75439909A3> >> >> >> >>>>> > >> >> >> >>>>> curl -v --insecure >> >> >> >>>>> >> >> >> >> https://localhost/.;****jsessionid=****D62D2D693854214C847E7A75439909** >> >> >> >>>>> **A3< >> >> >> >> https://localhost/.;**jsessionid=**D62D2D693854214C847E7A75439909**A3> >> >> >> >>>>> < >> >> >> >> https://localhost/.;**jsessionid=**D62D2D693854214C847E7A75439909**A3< >> >> >> https://localhost/.;jsessionid=D62D2D693854214C847E7A75439909A3>>-> >> >> >> >>>>> HTTP 404 >> >> >> >>>>> >> >> >> >>>>> >> >> >> >>>>> change URL (erasing ".") to >> >> >> >>>>> curl -v --insecure >> >> >> >>>>> >> >> https://localhost/;jsessionid=******D62D2D693854214C847E7A75439909** >> >> >> >>>>> **A3< >> >> >> https://localhost/;jsessionid=**D62D2D693854214C847E7A75439909**A3> >> >> >> >>>>> < >> >> >> https://localhost/;**jsessionid=**D62D2D693854214C847E7A75439909**A3 >> < >> >> >> https://localhost/;jsessionid=D62D2D693854214C847E7A75439909A3>>-> >> >> >> >>>>> Location: >> >> >> >>>>> >> >> >> >>>>> https://localhost/?1 >> >> >> >>>>> >> >> >> >>>>> When trying in a browser I get the warning that it's a redirect >> >> loop. >> >> >> >>>>> >> >> >> >>>>> Can somebody please point me to what I'm doing wrong here? >> >> >> >>>>> >> >> >> >>>>> Many Thanks >> >> >> >>>>> Thomas >> >> >> >>>>> >> >> >> >>>>> >> >> >> >>>>> >> ------------------------------****----------------------------** >> >> >> >>>> --**--------- >> >> >> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apa**che.org >> < >> >> >> http://apache.org> >> >> >> >>>> <users-unsubscribe@**wicket.apache.org< >> >> >> [email protected]> >> >> >> >>>> > >> >> >> >>>> >> >> >> >>>> For additional commands, e-mail: [email protected] >> >> >> >>>> >> >> >> >>>> >> >> >> >>>> >> >> >> > >> >> >> >> >> >> --------------------------------------------------------------------- >> >> >> To unsubscribe, e-mail: [email protected] >> >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> >> >> >> > >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [email protected] >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
