package org.ets.ibt.utilities.server; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.ets.ibt.delivery.server.common.exception.XMLValidationException; import org.ets.ibt.delivery.server.controller.candidate.XMLGenerationProcess; import org.ets.ibt.delivery.server.security.IBTSecurityUtil; import org.ets.ibt.delivery.server.utility.S3ResultsAccessLambda; import org.ets.ibt.delivery.server.utility.ServerProperties; import org.ets.util.str.StringHelper; public class ValidateXMLServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(this.checkPermission()) { response.setContentType("text/html; charset=ISO-8859-1"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("Validate XML Results"); out.println(""); out.println(""); String candidateId = request.getParameter("candidate_id"); String regSysId = request.getParameter("regSys_Id"); List fileList = null; try { S3ResultsAccessLambda e = new S3ResultsAccessLambda(false); fileList = e.getXmlGenFiles(candidateId, regSysId, true); } catch (Exception var10) { var10.printStackTrace(); } if(fileList != null && fileList.size() != 0) { try { XMLGenerationProcess.validateXMLResult(candidateId, regSysId, new File((String)fileList.get(0))); out.println("

The XML result is validated.

"); } catch (XMLValidationException var9) { out.println("

iBT XML Validation Exception:
"); out.println(var9.getMessage()); String trace = StringHelper.getStackTrace(var9); trace = StringHelper.replace(trace, " ", "        "); trace = StringHelper.replace(trace, "\n", "
"); out.println(trace); } } else { out.println(candidateId); } out.println(""); out.println(""); out.flush(); } } private boolean checkPermission() { return IBTSecurityUtil.hasPermission("ACCSS_XML_GENRTION", new String[]{"level_4_role", "level_3_role", "level_2_role", "level_1_role"}) && !ServerProperties.isServerCloudMode(); } }