Re: Invalidating all portlet sessions

Eric Dalquist <[email protected]> Mon, 14 Jul 2008 14:02:10 -0500
Newsgroups gmane.comp.jakarta.pluto.user
Organization DoIT
Message-ID <[email protected]>
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
>>>>
>>>>
>>
smime.p7s (application/x-pkcs7-signature, 3.3 KB) - not displayed