You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Mufaddal Khumri <mu...@wmotion.com> on 2003/09/17 11:59:52 UTC
Trying another approach - HttpSessionListener Re: cleaning up sessions ...
I am trying to implement the HttpSessionListener (the same class
implements ServletContextListener. The code for which is below.
1. I open a browser window , use MyApp after logging in.
2. I open the tomcat manager and reload my webapp. I go to the console
at this point and see the message - "Session is already invalid."
3. I go to my window in step 1. and click on a link to go to a
particular .jsp page. I get a blank window. I check the session
attributes at this point and my session attribute USER_AUTHORIZED
exists and is true.
step 2 s result conflicts with step 3s result. Invalidating the session
does not propagate to the client ??????? What am i doing wrong ?
public void contextDestroyed(ServletContextEvent sce)
{
// Destroy sessions.
if(sessions != null)
{
Iterator i = sessions.iterator();
while (i.hasNext())
{
HttpSession s = (HttpSession)i.next();
try
{
if(s != null && s.getAttribute("USER_AUTHORISED") != null)
{
System.out.println("Invalidating session id = " +
s.getId());
s.invalidate();
}
}
catch(IllegalStateException ex)
{
System.out.println("Session is already invalid.");
}
}
}
// End Destroy sessions.
}
public void sessionCreated(HttpSessionEvent event)
{
if(sessions == null)
sessions = new HashSet();
sessions.add(event.getSession());
}
public void sessionDestroyed(HttpSessionEvent event)
{
if(sessions != null)
{
sessions.remove(event.getSession());
}
}
On Wednesday, September 17, 2003, at 02:08 PM, Mufaddal Khumri wrote:
> To test I did the following:
>
> 1. started tomcat.
> 2. started a browser, logged into MyApp and used it.
> 3. stopped tomcat and restarted tomcat . (kept the browser window
> open).
> 4. went back to my browser window and tried to continue using my MyApp
> by clicking on one of the links to a jsp page. The browser showed me a
> blank window -
> AT THIS POINT I checked the session attribute and it was still
> existing. My code that redirects the user to the login page checks to
> see if this attribute is not there or is false. Since its present and
> is true it does not redirect the user. The only way i can redirect the
> user to the login page is by invalidating the session he or she is
> using . For this i made the change to the server.xml.
>
> Any ideas why this isnt working ?
>
> On Thursday, September 18, 2003, at 02:12 AM, Mike Curwen wrote:
>
>> You are doing nothing wrong... Tomcat will persist sessions between
>> restarts.
>>
>> To check your code works correctly, don't restart Tomcat... close your
>> browser window and start a new instance of the browser (or let the
>> session time out in a single browser).
>>
>>
>>> -----Original Message-----
>>> From: Mufaddal Khumri [mailto:mufaddal@wmotion.com]
>>> Sent: Wednesday, September 17, 2003 2:53 AM
>>> To: Tomcat Users List
>>> Cc: Yoav.Shapira@mpi.com
>>> Subject: Re: cleaning up sessions ...
>>>
>>>
>>> Exactly. I have a session attribute in my session that i set
>>> to true .
>>> and if that session attribute is not present or is false i redirect
>>> them to the authentication page.
>>>
>>> I did the following to my server.xml :
>>>
>>> <Manager className="org.apache.catalina.session.PersistentManager"
>>> debug="0"
>>> saveOnRestart="false"
>>> maxActiveSessions="-1"
>>> minIdleSwap="-1"
>>> maxIdleSwap="-1"
>>> maxIdleBackup="-1">
>>> <Store
>>> className="org.apache.catalina.session.FileStore"/>
>>> </Manager>
>>>
>>> Now i go to the tomcat manager and reload my webapp . I am
>>> navigating
>>> the webapp in a browser when this happens (ie i am currently a user
>>> using a valid session ) .. after the webapp reloads ... i continue
>>> using the webapp by clicking on say a link ... which takes me to some
>>> other jsp page ... i do a check on top of this jsp page for this
>>> "attribute" ... and it still persists . This is what threw me off ..
>>> and i could not understand where i was doing what wrong ...
>>>
>>> Any help appreciated
>>>
>>> Thanks.
>>>
>>> On Thursday, September 18, 2003, at 01:19 AM, Shapira, Yoav wrote:
>>>
>>>>
>>>> Howdy,
>>>>
>>>>> all pages i do a checkAuthetication .. how do i check if
>>> the session
>>>>> is
>>>>> active or not ? .. so that i can detect that and redirect
>>> them to the
>>>>
>>>> Hmm... I would do this using attributes. All attributes
>>> are unbound
>>>> when the session is invalidated. So add an attribute to
>>> the session
>>>> when you authenticate people, and check for that attribute in your
>>>> pages. If it's not present, redirect them to the
>>> authentication page.
>>>>
>>>> Yoav Shapira
>>>>
>>>>
>>>>
>>>> This e-mail, including any attachments, is a confidential business
>>>> communication, and may contain information that is confidential,
>>>> proprietary and/or privileged. This e-mail is intended
>>> only for the
>>>> individual(s) to whom it is addressed, and may not be
>>> saved, copied,
>>>> printed, disclosed or used by anyone else. If you are not the(an)
>>>> intended recipient, please immediately delete this e-mail from your
>>>> computer system and notify the sender. Thank you.
>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
Problems with HttpSessionListener ..
Posted by Mufaddal Khumri <mu...@wmotion.com>.
Hi,
I am trying to implement the HttpSessionListener (the same class
implements ServletContextListener). The code for which is below.
1. I open a browser window , use MyWebApp after logging in it.
2. I open the tomcat manager and reload my MyWebApp. I go to the
console at this point and see the message - "Session is already
invalid." (see code below)
3. I go to my window in step 1. and click on a link to go to a
particular .jsp page. I get a blank window. I check the session
attributes at this point and my session attribute USER_AUTHORIZED
exists and is true.
step 2 s result conflicts with step 3s result. (see code below).
Invalidating the session does not propagate to the client ??????? What
am i doing wrong ?
public void contextDestroyed(ServletContextEvent sce)
{
// Destroy sessions.
if(sessions != null)
{
Iterator i = sessions.iterator();
while (i.hasNext())
{
HttpSession s = (HttpSession)i.next();
try
{
if(s != null && s.getAttribute("USER_AUTHORISED") != null)
{
System.out.println("Invalidating session id = " +
s.getId());
s.invalidate();
}
}
catch(IllegalStateException ex)
{
System.out.println("Session is already invalid.");
}
}
}
// End Destroy sessions.
}
public void sessionCreated(HttpSessionEvent event)
{
if(sessions == null)
sessions = new HashSet();
sessions.add(event.getSession());
}
public void sessionDestroyed(HttpSessionEvent event)
{
if(sessions != null)
{
sessions.remove(event.getSession());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
Problems with HttpSessionListener ..
Posted by Mufaddal Khumri <mu...@wmotion.com>.
Hi,
I am trying to implement the HttpSessionListener (the same class
implements ServletContextListener). The code for which is below.
1. I open a browser window , use MyWebApp after logging in it.
2. I open the tomcat manager and reload my MyWebApp. I go to the
console at this point and see the message - "Session is already
invalid." (see code below)
3. I go to my window in step 1. and click on a link to go to a
particular .jsp page. I get a blank window. I check the session
attributes at this point and my session attribute USER_AUTHORIZED
exists and is true.
step 2 s result conflicts with step 3s result. (see code below).
Invalidating the session does not propagate to the client ??????? What
am i doing wrong ?
public void contextDestroyed(ServletContextEvent sce)
{
// Destroy sessions.
if(sessions != null)
{
Iterator i = sessions.iterator();
while (i.hasNext())
{
HttpSession s = (HttpSession)i.next();
try
{
if(s != null && s.getAttribute("USER_AUTHORISED") != null)
{
System.out.println("Invalidating session id = " +
s.getId());
s.invalidate();
}
}
catch(IllegalStateException ex)
{
System.out.println("Session is already invalid.");
}
}
}
// End Destroy sessions.
}
public void sessionCreated(HttpSessionEvent event)
{
if(sessions == null)
sessions = new HashSet();
sessions.add(event.getSession());
}
public void sessionDestroyed(HttpSessionEvent event)
{
if(sessions != null)
{
sessions.remove(event.getSession());
}
}