When a user hits login page of a Portal
(it could be Liferay
, Jboss Portal
..), JSESSIONID cookie
is created by the container
. After entering credentials in the login page, same JSESSIONID
gets carried over.
Here, end user will come to know the JSESSIONID
before he could get authenticated (by checking the JSESSIONID
in the login page). This will increase vulnerability of the site for hacking because one can know the JSESSIONID
before one gets authenticated.
This post advices to have a different JSESSIONID
after authentication.
So, creating a new JSESSIOND can be achieved by Portal
server being used (am using Liferay CE 6.0
) or it has to be handled by web application developer? If it has to be handled by web application developer what is the best way to do? request.getSession(true)
is the only option?? If I need to instruct Liferay
to create a new JSESSIONID
after authentication how it can be done?
This looks a lot like the session fixation problem I solved for Liferay 5.2.5 a long time ago. The solution consists of creating a custom Tomcat Valve that will force a new session ID. So the solution isn't really specific for Liferay and is dependent on if you use Tomcat or not.
I suspect it shouldn't be too difficult to adapt my old solution to a newer Liferay/Tomcat combination. You can find the necessary information about my solution in my old and currently unmaintained blog (if I only had more time...): Fixing session fixation in Liferay