Fix users getting stuck at a blank white page after logging in. #16
@ -10,5 +10,28 @@
|
|||||||
|
|
||||||
<session-config>
|
<session-config>
|
||||||
<session-timeout>480</session-timeout>
|
<session-timeout>480</session-timeout>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
By default, Tomcat will use a cookie to track the session.
|
||||||
|
However, if there is no cookie sent by the browser it will append
|
||||||
|
the session id to the URL. The way it does this is by adding a
|
||||||
|
";jsessionid=..." to the end. This is not a problem in itself, but
|
||||||
|
it can enable session hijacking if the URL is shared and ";" is
|
||||||
|
a blocked character by the default Spring Security configuration.
|
||||||
|
(see StrictHttpFirewall).
|
||||||
|
|
||||||
|
So what happens is a user navigates to SciPro. No session cookie is
|
||||||
|
sent since this is the first request. SciPro sees that the user is
|
||||||
|
not authenticated and redirects the user to the login page.
|
||||||
|
When SciPro checks for authentication it checks the session which
|
||||||
|
will instruct Tomcat to create a session. Since Tomcat sees no
|
||||||
|
cookie it will append the session id to the redirect URL to try and
|
||||||
|
track the session. After the user has logged in it is redirected
|
||||||
|
back to SciPro with the session id in the URL which is then blocked
|
||||||
|
by Spring's StrictHttpFirewall.
|
||||||
|
|
||||||
|
To avoid this, we can set the tracking mode to *only* COOKIE.
|
||||||
|
-->
|
||||||
|
<tracking-mode>COOKIE</tracking-mode>
|
||||||
</session-config>
|
</session-config>
|
||||||
</web-app>
|
</web-app>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user