Did you find root of the problem? Just curious :)

Good luck


On Tue, Jan 11, 2011 at 11:00 PM, Pepijn Schmitz <capt...@chaos.demon.nl>wrote:

> Hi,
>
> Thanks! But I don't think that's it. We're already using HTTPS, but also
> that would not explain how the correct application state object can be on
> the HttpSession, even though Tapestry injected the wrong one...
>
> We are using Apache 2 using mod_proxy as a front-end though. Apache takes
> care of the SSL and forwards the requests to Glassfish over HTTP. I'll look
> into the possibility that something is going wrong there, although it seems
> unlikely due to the above reason...
>
> Cheers,
> Pepijn
>
>
> On 11-01-11 19:04, Koka Kiknadze wrote:
>
>> I did have exactly similar problem couple of years ago - JSF app worked
>> fine
>> from intranet, but messed up user sessions when accessed from WAN side.
>>
>> So initial suspect was the squid proxy configuration of our ISP. The
>> problem
>> disappeared as soon as we turned encryption on for the whole site (so that
>> proxy could not mess things up). Well, as the performance was acceptable
>> even with HTTPS we just left everything as is.
>>
>> Hence I'd suggest temporarily requiring HTTPS for the whole site and if
>> the
>> problem disappears, you'll know for sure it's not your application or
>> tapestry to be blamed.
>>
>> Good luck.
>>
>>
>>
>>
>> On Tue, Jan 11, 2011 at 8:37 PM, Pepijn Schmitz<tapes...@chaos.demon.nl
>> >wrote:
>>
>>  Hi everyone,
>>>
>>> I'm having a bizarre problem with Tapestry, and I'm hoping someone here
>>> might be able to point me to a solution. Before I go into detail I'd like
>>> to
>>> describe the problem generally, in the hopes that it might be a known
>>> problem or someone may have encountered something similar.
>>>
>>> The problem is that Tapestry 4.1.6 sometimes injects the wrong
>>> application
>>> state object on my pages! As you can imagine, this plays havoc with my
>>> application, with users seeing other users' details, or even worse,
>>> changing
>>> other users' information! It's a support and security nightmare.
>>>
>>> I'm using Tapestry 4.1.6, and I'm using annotations instead of XML files.
>>> My pages all descend from a base class:
>>>
>>> public abstract SupplierDNAPage extends BasePage {
>>>    @InjectState
>>>    public abstract SupplierDnaSession getSupplierDnaSession();
>>>
>>>    @InjectStateFlag
>>>    public abstract boolean getSupplierDnaSessionExists();
>>>
>>>    ...
>>> }
>>>
>>> hivemodule.xml contains the following:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <module id="com.supplierdna" version="0.0.0">
>>> <contribution configuration-id="tapestry.state.ApplicationObjects">
>>> <state-object name="supplier-dna-session" scope="session">
>>> <create-instance class="com.supplierdna.logic.SupplierDnaSession"/>
>>> </state-object>
>>> </contribution>
>>>  ...
>>> </module>
>>>
>>> SupplierDNA is the name of the company I'm writing this for. As I
>>> understand it, this is the correct way of using application state
>>> objects.
>>> And most of the time, it works perfectly. When testing locally I have no
>>> problems with wrong application state being injected, and our demo system
>>> also doesn't have the problem.
>>>
>>> The problems seem to start when the server is heavily loaded. Then,
>>> sometimes, getSupplierDnaSession() will return an application state
>>> object
>>> from a different session!!!
>>>
>>> I have verified this by adding a pageBeginRender() listener method to the
>>> base class, and a client address property to the session. The listener
>>> method checks whether the client address stored on the session it gets
>>> from
>>> Tapestry is the same as the client address from the current request, and
>>> throws an exception if this is not the case. On our production server,
>>> this
>>> happens dozens of times a day!
>>>
>>> The method also directly retrieves the application state object from the
>>> HttpSession and compares it to the one it got from Tapestry, and it turns
>>> out that the application state object on the HttpSession is the correct
>>> one,
>>> but somehow Tapestry is injecting a different one! This seems to rule out
>>> the web container as being the culprit (which is Glassfish 2 update 2, in
>>> this case).
>>>
>>> Obviously this is a complex problem with a potentially huge number of
>>> contributing factors, but first I'd just like to know whether this sounds
>>> familiar to anyone? Is there a known problem with Tapestry which could
>>> cause
>>> this? Has anyone ever experienced something similar? Many thanks in
>>> advance
>>> for any help you can give me!
>>>
>>> Kind regards,
>>> Pepijn Schmitz
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>
>>>
>>>
>
>

Reply via email to