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]

Reply via email to