So I think I have it working and I didn't have to redirect the user, which is good because that wasn't working anyway. I don't know if it was JAAS or Struts, or what, but the login parameters were being stripped from the request so they never got to the login page.

How I got it to work was this:

I added a filter that looked for the login parameters on the request and if the login was different from the login of the currently authenticated user I retrieved the user's instance of their LoginModule (which I set on the user principal in the login() method in the LoginModule instance), called the logout method, which cleared the user's information from the session (though it's not exactly clear how), and then invalidate the session. For whatever reason, invalidating the session wasn't sufficient to actually invalidate the session. The user's information was still being persisted in the LoginModule instance so my guess is that when the user tried to log in as another user, it was still using the old user information bean.

The result of this is that if user A is logged in and authenticated and this user attempts to log in as user B, we log out user A but since B's login parameters are lost, user B is dumped to the login page where they have to log in again. We can live with this for now since the only reason we're implementing this fix is to prevent our CSR's and sales team from accidentally forgetting to log out as one user and then try to log in as another and do something to the first user's account when they are thinking it's the second user's account.

I think ultimately, the solution is going to be to not use JAAS and implement our own authentication solution since it's pretty clear that either we're not using JAAS correctly, or it's just not capable of doing what we need it to do.

Thanks for all the feedback.

--adam

Dale Newfield wrote:
Adam Gordon wrote:
I think the solution is going to be to redirect the user to the default main page manually w/ the login parameters and JAAS should take over from there...hopefully.

Except a redirect must be to a GET, not a POST, and it would be unfortunate to include the login credentials in a GET as they would then appear in history/logfiles... ...there's no way to do in code in your filter right where the problem case is detected the same stuff you do in a script on your login form page?

-Dale

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to