package at.gv.egovernment.moa.id.auth.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import at.gv.egovernment.moa.id.config.ConfigurationException; import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.monitoring.TestManager; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.MiscUtil; public class MonitoringServlet extends AuthServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { AuthConfigurationProvider config = AuthConfigurationProvider.getInstance(); if (config.isMonitoringActive()) { Logger.debug("Monitoring Servlet received request"); TestManager tests = TestManager.getInstance(); List error = tests.executeTests(); if (error != null && error.size() > 0) { createErrorMessage(req, resp, error); } else { resp.setStatus(HttpServletResponse.SC_OK); resp.setContentType("text/html;charset=UTF-8"); Logger.info("Monitoring Servlet finished without errors"); } } } catch (ConfigurationException e) { createErrorMessage(req, resp, Arrays.asList(e.getMessage())); } } private void createErrorMessage(HttpServletRequest req, HttpServletResponse resp, List errorMessage) { Logger.warn("Monitoring Servlet found some Error: " + errorMessage); resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); resp.setContentType("text/html;charset=UTF-8"); PrintWriter out; try { out = new PrintWriter(resp.getOutputStream()); for (String error : errorMessage) out.write(error + "
"); out.flush(); } catch (IOException e) { Logger.warn("Internal Monitoring Servlet Error. ", e); } } }