<div dir="ltr"><font face="verdana, sans-serif" color="#000000" style="background-color:rgb(255,255,255)">Hi all,</font><div><font face="verdana, sans-serif" color="#000000" style="background-color:rgb(255,255,255)"><br></font></div><div><font face="verdana, sans-serif" color="#000000" style="background-color:rgb(255,255,255)">first of all sorry if some of you already answered on my IRC request on freenode but due to network policy in my company I could only connect via web and have been disconnected without access to channel history.</font></div><div><font face="verdana, sans-serif" color="#000000" style="background-color:rgb(255,255,255)">I apologize if you already took time to answer on the channel but I could not see your answer.</font></div><div><br></div><div><font face="verdana, sans-serif" color="#000000" style="background-color:rgb(255,255,255)">The problem I have is around the &#39;ChangeSessionIdOnLogin&#39; feature implemented in undertow. I understand that the feature is there in order to avoid attacks via session reuse (exposing a link with an already provided JSESSIONID for example).</font></div><div><font face="verdana, sans-serif" color="#000000" style="background-color:rgb(255,255,255)"><br></font></div><div><font face="verdana, sans-serif" color="#000000" style="background-color:rgb(255,255,255)">In one of our application, a SPA application with some server side HttpSession caching, during initialization a bunch of asynchronous calls are performed. Due to the </font><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">&#39;</span><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">ChangeSessionIdOnLogin</span><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">&#39; feature several of them are failing.</span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">I have implemented a simple reproducer application exposing the problem and possible workarounds (examples are self runnable using maven : </span><font color="#000000" face="verdana, sans-serif"><a href="https://github.com/McFoggy/jsessionid-concurrency">https://github.com/McFoggy/jsessionid-concurrency</a>)</font><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">.</span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif"><br></span></div><div><font color="#000000" face="verdana, sans-serif">In the provided reproducer app we workaround the JSESSIONID regeneration by either:</font></div><div><font color="#000000" face="verdana, sans-serif">  - making a fake call before the asynchronous calls are performed (changing the JSESSIONID before parallel calls occure)</font></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">  - disabling the </span><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">&#39;</span><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">ChangeSessionIdOnLogin</span><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">&#39; feature using an undertow ServletExtension</span><font color="#000000" face="verdana, sans-serif"><br></font></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif"><br></span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">The real question I have is why the created session is not trusted (see </span><font color="#000000" face="verdana, sans-serif"><a href="https://github.com/undertow-io/undertow/blob/master/servlet/src/main/java/io/undertow/servlet/handlers/security/CachedAuthenticatedSessionHandler.java#L93">https://github.com/undertow-io/undertow/blob/master/servlet/src/main/java/io/undertow/servlet/handlers/security/CachedAuthenticatedSessionHandler.java#L93</a></font><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">) when the HttpSession is created by an authenticated call without incoming JSESSIONID?</span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif"><br></span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">Is this a bug? I&#39;ll fill an issue if so.</span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">Is this a feature? In this case what is the recommendation to avoid this when several calls are issued before JSESSIONID stabilization like in the demo project?</span><span style="color:rgb(0,0,0);font-family:verdana,sans-serif"> </span><br></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif"><br></span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">Thanks for any hint &amp; answer.</span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif"><br></span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">Matthieu</span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">- - - - - - - - </span><span style="color:rgb(0,0,0);font-family:verdana,sans-serif">- - - - - - - -</span></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif"><a href="http://blog.matthieu.brouillard.fr/">http://blog.matthieu.brouillard.fr/</a></span><br></div><div><span style="color:rgb(0,0,0);font-family:verdana,sans-serif"><a href="http://oss.brouillard.fr/">http://oss.brouillard.fr/</a></span><br></div><div><font color="#000000" face="verdana, sans-serif"><a href="https://github.com/McFoggy">https://github.com/McFoggy</a></font><br></div><div><font color="#000000" face="verdana, sans-serif"><a href="https://twitter.com/alightinthefog">https://twitter.com/alightinthefog</a><br></font></div><div><font color="#000000" face="verdana, sans-serif"><br></font></div></div>