I did a little more debugging, but didn't have any luck figuring out
what's going on. The only other interesting information that I was able
to find was this: when the login page shows me the session id, and the
ExternalContext returns me null, and I wait for a while, then eventually
get a session from the EC, it's giving me the same session that Tomcat
created and I printed out on the login page. So this session was
created and I was able to display the session, but the EC didn't seem to
get it for a little while. Any idea why there is a delay like this
after I do a session.invalidate?
Thanks,
Jesse
Jesse Vitrone wrote:
I'm having some problems with my login page. When a user tries to log
in, I try to grab the session and use it for some stuff like this:
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext ec = fc.getExternalContext();
HttpSession httpSession = (HttpSession) ec.getSession(true);
httpSessionId = httpSession.getId();
And in my logout.jsp, I simple kill the users session with:
session.invalidate();
This seems to work fine, but if I go to log back in quickly, the
ec.getSession(true) call returns null. I can try a few times, and I
keep getting back null. If I wait for a little while, then try again,
I get back the session as I expect. Any idea what's going on, and why
I get back null for a little while?
I tried printing out the session id on my login jsp, just to make sure
that Tomcat was actually giving me a new session directly after
logout, and it is. So after logout, I'm printing out a session id,
and it's different that the first one from when I logged in the first
time, but then I submit my form, and the ExternalContext is returning
me null.
Any ideas?
Thanks,
Jesse
.