How about this kludge:

the filter checks session isNew() 
and checks the referring domain -- if it's null or 
not your own domain, send them to the login screen.
Otherwise send them to the session timeout screen.


> -----Original Message-----
> From: Himstedt, Maik (EXTERN: T-Systems on) 
> [mailto:extern.maik.himst...@volkswagen.de] 
> Sent: Tuesday, November 24, 2009 11:29 AM
> To: user@struts.apache.org
> Subject: Dealing / determining lost session in Struts application
> 
> Hi,
> 
> I'm tasked with killing a bug related to session management 
> and Struts 1.3.10 in a rather conventional JEE web 
> application. The problem is that after the session times out, 
> the application throws a rather ugly exception, something like:
> 
> 2009-11-04 11:45:46,803 ERROR 
> de.mypackage.ipad.util.hibernate.HibernateFilter - An 
> Exception occured.
> javax.servlet.ServletException: BeanUtils.populate
>       at 
> org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)
>       at 
> org.apache.struts.action.RequestProcessor.processPopulate(Requ
> estProcessor.java:821)
>       at 
> org.apache.struts.action.RequestProcessor.process(RequestProce
> ssor.java:254)
>       at 
> org.apache.struts.action.ActionServlet.process(ActionServlet.j
> ava:1482)
>       at...
> 
> What I understand is that after the session is gone, the 
> internal Struts processing tries to put some data into 
> session-stored objects. It does so with help of Apache 
> BeanUtils and I'm aware that this will crash, of course. My 
> goal is to present a page with a clean message that the 
> session is gone and the user has to re-enter the application. 
> Catching the ServletException at application level (via 
> web.xml) is a bad idea because of the rather generic 
> exception thrown. My current take is that I need a filter 
> which is called before the Struts servlet is called and the 
> filter checks the session beforehand via standard Java API 
> (isNew()). For a new session the user is redirected to a 
> descriptive error page. This might work if the user is 
> already in the application and takes a break, but isNew() 
> will return true at the first entry as well which is 
> nonsense, of course. 
> 
> What is the best practice to deal with this problem for a 
> Struts 1.3 application? Or is this not a standard problem and 
> the cause might be something different?
> 
> 
> Mit freundlichen Grüßen
> 
> 
> Maik Himstedt
> 
> T-Systems on site services GmbH
> Procurement Systems
> Telefon/phone: +49-5361-9-44026
> E-Mail: extern.maik.himst...@volkswagen.de
> --------------------------------------------------------------
> ------------------
> 
> Maik Himstedt
> Consultant
> Benzstraße 25a, 38446 Wolfsburg
> +49-5361-464 78-0 (Tel.)
> +49-5361-464 78-10 (Fax)
> E-Mail: maik.himst...@t-systems.com
> Internet: http://www.t-systems-onsite.de 
> 
> Geschäftsführung: Stefan Kappe, Thomas Müller-Braun
> Handelsregister: Amtsgericht Berlin HRB 51336
> Sitz der Gesellschaft: Berlin
> 
Notice:  This e-mail message, together with any attachments, contains 
information of Merck & Co., Inc. (One Merck Drive, Whitehouse Station, New 
Jersey, USA 08889), and/or its affiliates Direct contact information for 
affiliates is available at http://www.merck.com/contact/contacts.html) that may 
be confidential, proprietary copyrighted and/or legally privileged. It is 
intended solely for the use of the individual or entity named on this message. 
If you are not the intended recipient, and have received this message in error, 
please notify us immediately by reply e-mail and then delete it from your 
system.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to