Index: components/portal/src/java/org/apache/jetspeed/decoration/DecorationValve.java =================================================================== --- components/portal/src/java/org/apache/jetspeed/decoration/DecorationValve.java (revision 408599) +++ components/portal/src/java/org/apache/jetspeed/decoration/DecorationValve.java (working copy) @@ -87,6 +87,16 @@ decorationFactory.clearCache(requestContext); } ContentPage page = requestContext.getPage(); + + // Globaly override all psml themes if override session attribute has been set + if (requestContext + .getSessionAttribute(PortalReservedParameters.PAGE_THEME_OVERRIDE_ATTRIBUTE) != null) + { + String decoratorName = (String) requestContext + .getSessionAttribute(PortalReservedParameters.PAGE_THEME_OVERRIDE_ATTRIBUTE); + page.setDefaultDecorator(decoratorName, Fragment.LAYOUT); + } + Theme theme = decorationFactory.getTheme(page, requestContext); requestContext.setAttribute(PortalReservedParameters.PAGE_THEME_ATTRIBUTE, theme); Index: components/portal/src/java/org/apache/jetspeed/login/LoginProxyServlet.java =================================================================== --- components/portal/src/java/org/apache/jetspeed/login/LoginProxyServlet.java (revision 408599) +++ components/portal/src/java/org/apache/jetspeed/login/LoginProxyServlet.java (working copy) @@ -23,6 +23,8 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.jetspeed.PortalReservedParameters; + /** * LoginProxyServlet * @@ -55,6 +57,17 @@ else session.removeAttribute(LoginConstants.PASSWORD); + // Globaly override all psml themes + if (request + .getParameter(PortalReservedParameters.PAGE_THEME_OVERRIDE_ATTRIBUTE) != null) + { + String decoratorName = request + .getParameter(PortalReservedParameters.PAGE_THEME_OVERRIDE_ATTRIBUTE); + session.setAttribute( + PortalReservedParameters.PAGE_THEME_OVERRIDE_ATTRIBUTE, + decoratorName); + } + response.sendRedirect(response.encodeURL(request.getContextPath() + "/login/redirector")); } Index: jetspeed-api/src/java/org/apache/jetspeed/PortalReservedParameters.java =================================================================== --- jetspeed-api/src/java/org/apache/jetspeed/PortalReservedParameters.java (revision 408599) +++ jetspeed-api/src/java/org/apache/jetspeed/PortalReservedParameters.java (working copy) @@ -53,6 +53,11 @@ public static final String RESOVLER_CACHE_ATTR = "org.apache.jetspeed.resovler.cache"; public static final String PORTLET_WINDOW_ATTRIBUTE = "org.apache.jetspeed.portlet.window"; public static final String PAGE_THEME_ATTRIBUTE = "org.apache.jetspeed.theme"; + /** + * Setting this as a session attribute will override all themes declared in + * psml. Sample values are "simple", "tigris", "jetspeed" + */ + public static final String PAGE_THEME_OVERRIDE_ATTRIBUTE = "org.apache.jetspeed.theme.override"; public static final String PORTAL_FILTER_ATTRIBUTE = "org.apache.jetspeed.login.filter.PortalFilter"; }