@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (backupService == null) {
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
}
String url = ((HttpServletRequest) request).getRequestURI();
if (isBackupFinishJsonUrl(url)) {
((HttpServletResponse) response).setHeader("Cache-Control", "private, max-age=0, no-cache");
((HttpServletResponse) response).setDateHeader("Expires", 0);
generateResponseForIsBackupFinishedAPI(response);
return;
}
if (backupService.isBackingUp() && !isWhitelisted(url)) {
String json = "Server is under maintenance mode, please try later.";
String htmlResponse = generateHTMLResponse();
new ServerUnavailabilityResponse((HttpServletRequest) request, (HttpServletResponse) response, json, htmlResponse).render();
} else {
chain.doFilter(request, response);
}
}