SEC-486: Added determineExpiredUrl method to ConcurrentSessionFilter

This commit is contained in:
Luke Taylor 2008-01-31 16:25:50 +00:00
parent feadb3582a
commit feb790ea83

View File

@ -75,8 +75,10 @@ public class ConcurrentSessionFilter extends SpringSecurityFilter implements Ini
// Expired - abort processing // Expired - abort processing
doLogout(request, response); doLogout(request, response);
if (expiredUrl != null) { String targetUrl = determineExpiredUrl(request, info);
String targetUrl = request.getContextPath() + expiredUrl;
if (targetUrl != null) {
targetUrl = request.getContextPath() + targetUrl;
response.sendRedirect(response.encodeRedirectURL(targetUrl)); response.sendRedirect(response.encodeRedirectURL(targetUrl));
} else { } else {
response.getWriter().print("This session has been expired (possibly due to multiple concurrent " + response.getWriter().print("This session has been expired (possibly due to multiple concurrent " +
@ -95,6 +97,10 @@ public class ConcurrentSessionFilter extends SpringSecurityFilter implements Ini
chain.doFilter(request, response); chain.doFilter(request, response);
} }
protected String determineExpiredUrl(HttpServletRequest request, SessionInformation info) {
return expiredUrl;
}
private void doLogout(HttpServletRequest request, HttpServletResponse response) { private void doLogout(HttpServletRequest request, HttpServletResponse response) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication(); Authentication auth = SecurityContextHolder.getContext().getAuthentication();