Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1.2
-
None
Description
I have looked into the source code and found the reason. In TokenInterceptor.doIntercept(...), there is this code:
Map session = ActionContext.getContext().getSession();
synchronized (session) {
if (!TokenHelper.validToken())
return handleValidToken(invocation);
}
This block is essentially not synchronized! I found that the session Map is not a unique object across requests within an user session - in contrast with the HttpSession object provided by the Servlet API. Perhaps that should be considered the real bug?
A previous bug WW-1786 also points out that the above block is not synchronized - that fix would be redundant once this issue is resolved.