public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException { boolean result = super.preHandle(request, response, handler); ThemeResolver themeResolver = RequestContextUtils.getThemeResolver(request); String newTheme = themeResolver.resolveThemeName(request); if (!validThemes.contains(newTheme)) { // not found. logger.error("Invalid theme passed in: " + newTheme); try { response.sendRedirect("accessDenied.jsp"); return false; } catch (IOException e) { throw new ServletException("Could not redirect to accessDenied page.", e); } } else if (request.getParameter(this.paramName) != null) { // found. redirect to page without "param=.." extension. logger.warn("New theme set: " + newTheme + ". Redirecting to login.htm"); try { response.sendRedirect("login.htm"); } catch (IOException e) { throw new ServletException("Could not redirect to login page.", e); } } return result; }