1 17 package org.pentaho.core.system; 18 19 import java.io.IOException ; 20 21 import javax.servlet.Filter ; 22 import javax.servlet.FilterChain ; 23 import javax.servlet.FilterConfig ; 24 import javax.servlet.RequestDispatcher ; 25 import javax.servlet.ServletException ; 26 import javax.servlet.ServletRequest ; 27 import javax.servlet.ServletResponse ; 28 import javax.servlet.http.HttpServletRequest ; 29 30 31 36 public class SystemStatusFilter implements Filter { 37 38 private String redirectToOnInitError; 39 private boolean systemInitializedOk; 40 41 public void init(FilterConfig filterConfig) throws ServletException { 42 String failurePage = filterConfig.getInitParameter("initFailurePage"); if ( (failurePage == null) || (failurePage.length() == 0)) { 44 failurePage = "InitFailure"; } 46 redirectToOnInitError = "/" + failurePage; systemInitializedOk = PentahoSystem.getInitializedOK(); 48 } 49 50 public void doFilter(ServletRequest request, ServletResponse response, 51 FilterChain filterChain) throws IOException , ServletException { 52 if (systemInitializedOk) { 53 filterChain.doFilter(request, response); 54 } else { 55 HttpServletRequest req = (HttpServletRequest )request; 56 if (req.getServletPath().endsWith(redirectToOnInitError)) { 57 filterChain.doFilter(request, response); 58 } else { 59 RequestDispatcher dispatcher = request.getRequestDispatcher(redirectToOnInitError); 60 dispatcher.forward(request, response); 61 } 62 } 63 } 64 65 public void destroy() { 66 } 67 68 } 69 | Popular Tags |