\r
**%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%) | [war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%) | [express](http://code.google.com/p/gitblit/downloads/detail?name=%EXPRESS%) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%) | [manager](http://code.google.com/p/gitblit/downloads/detail?name=%MANAGER%) | [api](http://code.google.com/p/gitblit/downloads/detail?name=%API%)) based on [%JGIT%][jgit] *released %BUILDDATE%*\r
\r
+#### security\r
+\r
+- Fixed session fixation vulnerability where the session identifier was not reset during the login process (issue 62)\r
+\r
#### changes\r
\r
- block pushes to a repository with a working copy (i.e. non-bare repository) (issue-49)\r
// Login the user\r
if (user != null) {\r
// Set the user into the session\r
- GitBlitWebSession.get().setUser(user);\r
+ GitBlitWebSession session = GitBlitWebSession.get();\r
+ // issue 62: fix session fixation vulnerability\r
+ session.replaceSession();\r
+ session.setUser(user);\r
\r
// Set Cookie\r
WebResponse response = (WebResponse) getRequestCycle().getResponse();\r
private void loginUser(UserModel user) {\r
if (user != null) {\r
// Set the user into the session\r
- GitBlitWebSession.get().setUser(user);\r
+ GitBlitWebSession session = GitBlitWebSession.get();\r
+ // issue 62: fix session fixation vulnerability\r
+ session.replaceSession();\r
+ session.setUser(user);\r
\r
// Set Cookie\r
if (GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) {\r