Thanks Martin, Guess the tomcat people forgot to put that into 7.0.18 - I'm using 7.0.22 and still have the problem.
On Fri, Nov 18, 2011 at 10:16 AM, Martin Grigorov <[email protected]>wrote: > 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] > >
