Thanks,your answer can not be detailed more. :)

only a little confused.

Map attibutes = ActionContext.getContext().getSession()

I can get the session this manner,but it seems that it is a Map,not a
HttpSession,so what is the id?

I have debug the session yet,and I found there is a property in the Map:
struts.troken,is this unique can be used as the session id?

2010/12/2 Li Ying <liying.cn.2...@gmail.com>

> The problem will be:
>
> (1)How to save the information about who is logged in from which session.
>
> and
>
> (2)How to check this information before every action execution
>
>
> For problem 1, if you only have one app server, you can save this
> information in global variable, if you need support multi app servers,
> you can save it into DB.
> The data structure should like
> Map<UserID, SessionID> (in global variable)
>



> or
> TABLE (UserID VARCHAR, SessionID VARCHAR) (in DB)
>
>
> For problem 2, you are right, Interceptor will be a good choice.
>
>
>
>
> I think the whole architecture should likes:
>
> (1)After user login, save the logged in status into global variable or
> DB, and into current session.
>
> (2)Before every action execution, extract logged in user id from
> current session, and then check the global variable or DB, see if this
> user is logged in from the same session.
> If the same user is logged in from some session else, this means
> he/she has re-logged in from somewhere else, so you can remove the
> logged in status from current session, and then force the user login
> again.
>
>
>
> For example:
>
> (1)UserA, logged in from ComputerA.
> Let's say the session is SessionA.
>
> So in SessionA, the logged in user ID will be UserA.
> And in the global variable or DB, UserA will be marked "logged in from
> SessionA"
>
> (2)When the same user login from ComputerB.
> Let's say SessionB.
> In SessionB, the logged in user ID will be UserA.
> And in the global variable or DB, the logged in status of UserA will
> be overwritten by "logged in from SessionB"
>
> (3)Request any page again from ComputerA.
> The Interceptor can extract the logged in user id (which will be
> UserA) from current Session (which will be SessionA).
> And extract the logged in status from global variable or DB,
> which will be "logged in from SessionB", and different from current
> session.
>
> So the Interceptor can say, UserA has re-logged in from some where else.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
>
>

Reply via email to