Re: Invalidating all portlet sessions
Anders Olsson <[email protected]> Tue, 15 Jul 2008 16:15:01 +0200
| Newsgroups | gmane.comp.jakarta.pluto.user |
|---|---|
| Message-ID | <[email protected]> |
Thanks! I ended up using a filter that stores the portal session (if there is one) as a request attribute, I couldn't quite get the wrapper thing to work, I haven't investigated it further. Now everything works perfectly though! / Anders Eric Dalquist skrev: > Sorry, I hit send too soon. > > In our portal we add a request wrapper to the request before > proceeding with any processing. This wrapper provides access to the > original request via a specified request attribute. The code that goes > along with the PortalRequestUtilsImpl is here: > > https://www.ja-sig.org/svn/uPortal/trunk/uportal-impl/src/main/java/org/jasig/portal/url/PortalHttpServletRequest.java > > > That adds more functionality than you need to worry about for this > usage but you can see how the original portal request is accessed. If > you did something like that in a filter in front of Pluto you should > be fine. > > -Eric > > Eric Dalquist wrote: >> Here is our request utils class. Since you're doing this from withing >> Pluto I believe these are all safe operations: >> >> https://www.ja-sig.org/svn/uPortal/trunk/uportal-impl/src/main/java/org/jasig/portal/url/PortalRequestUtilsImpl.java >> >> >> -Eric >> >> Anders Olsson wrote: >>> Thanks, this is exactly what I'm looking for! There is one thing >>> left for me to solve though: I can't figure out how I can retrieve >>> the portal session from the onEnd()-method of my >>> PortletInvocationListener. In uPortal the portal request can be >>> retrieved using IPortalRequestUtils.getOriginalPortalRequest() but I >>> can't find a way to do that within the pluto portal. >>> >>> I tried using the PortalRequestContext that is stored as the request >>> attribute PortalRequestContext.REQUEST_KEY but that gives me the >>> request after it has already been dispatched to the pluto >>> PortletServlet. >>> >>> / Anders >>> >>> >>> Eric Dalquist skrev: >>>> We do this in uPortal by using a PortletInvocationListener to track >>>> all of the sessions that have been created for portlets and then a >>>> HttpSessionListener which generates Spring ApplicationContext >>>> events for session created/destroyed events. >>>> >>>> Our custom listener: >>>> https://www.ja-sig.org/svn/uPortal/trunk/uportal-impl/src/main/java/org/jasig/portal/portlet/session/PortletSessionExpirationManager.java >>>> >>>> Our session listener: >>>> https://www.ja-sig.org/svn/uPortal/trunk/uportal-impl/src/main/java/org/jasig/portal/spring/web/context/support/ApplicationContextDelagatingSessionListener.java >>>> >>>> >>>> -Eric >>>> >>>> Anders Olsson wrote: >>>>> Hi! >>>>> >>>>> I have created a simple custom portal based on pluto-portal. From >>>>> a servlet in my custom portal I want to invalidate all related >>>>> sessions in my deployed portlet applications, is there an easy way >>>>> to do this, using the portal-driver? >>>>> >>>>> I suppose one possibility would be to iterate through all >>>>> configured portlets and trigger an ActionRequest and in each of >>>>> the portlets make sure that they respond to that request by >>>>> invalidating the session. But I would just want to know if there's >>>>> a better/easier way? >>>>> >>>>> All portlets are separate web applications. >>>>> >>>>> Regards >>>>> Anders >>>>> >>>>> >>>