diff --git a/activemq-web-console/src/main/java/org/apache/activemq/web/filter/ApplicationContextFilter.java b/activemq-web-console/src/main/java/org/apache/activemq/web/filter/ApplicationContextFilter.java index ca6f27cb51c..5b0c1754289 100644 --- a/activemq-web-console/src/main/java/org/apache/activemq/web/filter/ApplicationContextFilter.java +++ b/activemq-web-console/src/main/java/org/apache/activemq/web/filter/ApplicationContextFilter.java @@ -66,6 +66,7 @@ public class ApplicationContextFilter implements Filter { private String applicationContextName = "applicationContext"; private String requestContextName = "requestContext"; private String requestName = "request"; + private String slavePage = "slave.jsp"; public void init(FilterConfig config) throws ServletException { this.servletContext = config.getServletContext(); @@ -84,19 +85,22 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha Map requestContextWrapper = createRequestContextWrapper(request); String path = ((HttpServletRequest)request).getRequestURI(); // handle slave brokers -// try { -// if ( !(path.endsWith("css") || path.endsWith("png") || path.endsWith("ico") || path.endsWith(slavePage)) -// && ((BrokerFacade)requestContextWrapper.get("brokerQuery")).isSlave()) { -// ((HttpServletResponse)response).sendRedirect(slavePage); -// return; -// } -// } catch (Exception e) { -// LOG.warn(path + ", failed to access BrokerFacade: reason: " + e.getLocalizedMessage()); -// if (LOG.isDebugEnabled()) { -// LOG.debug(request.toString(), e); -// } -// throw new IOException(e); -// } + try { + boolean isSlave = ((BrokerFacade) requestContextWrapper.get("brokerQuery")).getBrokerAdmin().isSlave(); + if (isSlave && !(path.endsWith("css") || path.endsWith("png") || path.endsWith("ico") || path.endsWith(slavePage))) { + ((HttpServletResponse) response).sendRedirect(slavePage); + return; + } else if (!isSlave && path.endsWith(slavePage)) { + ((HttpServletResponse) response).sendRedirect(((HttpServletRequest) request).getContextPath() + "/index.jsp"); + return; + } + } catch (Exception e) { + LOG.warn(path + ", failed to access BrokerFacade: reason: " + e.getLocalizedMessage()); + if (LOG.isDebugEnabled()) { + LOG.debug(request.toString(), e); + } + throw new IOException(e); + } request.setAttribute(requestContextName, requestContextWrapper); request.setAttribute(requestName, request); chain.doFilter(request, response); diff --git a/assembly/src/release/conf/activemq.xml b/assembly/src/release/conf/activemq.xml index 9f32bd90f59..39ba30d7ae6 100644 --- a/assembly/src/release/conf/activemq.xml +++ b/assembly/src/release/conf/activemq.xml @@ -31,7 +31,7 @@ - + diff --git a/assembly/src/release/conf/jetty.xml b/assembly/src/release/conf/jetty.xml index bd8170342dc..ee6436a6507 100644 --- a/assembly/src/release/conf/jetty.xml +++ b/assembly/src/release/conf/jetty.xml @@ -202,10 +202,10 @@ - + - + diff --git a/assembly/src/release/examples/conf/activemq-demo.xml b/assembly/src/release/examples/conf/activemq-demo.xml index 13524dbb643..12fbc2ec2b4 100644 --- a/assembly/src/release/examples/conf/activemq-demo.xml +++ b/assembly/src/release/examples/conf/activemq-demo.xml @@ -47,7 +47,7 @@ - Change the brokerName attribute to something unique --> - + - + diff --git a/assembly/src/release/examples/conf/activemq-stomp.xml b/assembly/src/release/examples/conf/activemq-stomp.xml index 0fe5b11c2b7..d2f6fee4bf9 100644 --- a/assembly/src/release/examples/conf/activemq-stomp.xml +++ b/assembly/src/release/examples/conf/activemq-stomp.xml @@ -44,7 +44,7 @@ - +