In a web application based on propraietery MVC and authorization model, we have recently migrated to Spring MVC. As part of that move, we are also looking at moving away from a locally created GUID that is passed with each request to a cookie based Session ID.
On the face of it, it looks as if in our case, doing so will be a big disadvantage as the standard JSESSION/HttpSession seems to be the root of all security evils:
- Session Fixation (In existing code session is only created after succesful login, so we need never invalidate() a sessions.
- CSRF - Session is never passed as a cookie so this is never a risk (and god, it's a problematic one to handle since there is no real framework or generic solution out therem checked HDIV and CSRFGuard).
- Testing Useability - QA can easily have multiple users with multiple roles connecting to the same Server, not possible with JSESSION.
- In consistent HTTPSession creation and invalidation in various Containers (Weblogic, JBOSS and Websphere)
- Inconsistent JSession handling when moving between HTTP to HTTPS.
So, other than the obvious advantage of "being standard", Any clues as to why would I want to go the JSESSION route?