List of usage examples for org.apache.commons.fileupload FileUploadException getMessage
public String getMessage()
From source file:com.gtwm.pb.model.manageData.DataManagement.java
/** * Used by both the public saveRecord and globalEdit methods *//*ww w . ja va 2 s . com*/ private void saveRecord(HttpServletRequest request, TableInfo table, LinkedHashMap<BaseField, BaseValue> dataToSave, boolean newRecord, Set<Integer> rowIds, SessionDataInfo sessionData, List<FileItem> multipartItems) throws InputRecordException, ObjectNotFoundException, SQLException, CantDoThatException, CodingErrorException, DisallowedException, MissingParametersException { if ((dataToSave.size() == 0) && (!newRecord)) { // Note: this does actually happen quite a lot, from two particular // users, therefore I've commented out the log warning. // Haven't tracked down the cause but it doesn't seem to be creating // a problem. // logger.warn("Call to saveRecord with no data to save. User = " // + request.getRemoteUser() + ", table = " + table + ", rowIds = " // + rowIds); return; } this.setHiddenFieldValues(request, table, dataToSave, newRecord); boolean globalEdit = false; int rowId = -1; if (rowIds.size() > 1) { globalEdit = true; } else if (rowIds.size() == 1) { rowId = (new LinkedList<Integer>(rowIds)).getFirst(); } else { throw new ObjectNotFoundException("Row ID list " + rowIds + " is invalid"); } StringBuilder SQLCodeBuilder = new StringBuilder(); // Generate CSV of fields and placeholders to use in update/insert SQL // string StringBuilder fieldsCsvBuilder = new StringBuilder(); StringBuilder fieldsAndPlaceholdersCsvBuilder = new StringBuilder(); StringBuilder valuePlaceholdersCsvBuilder = new StringBuilder(); for (BaseField field : dataToSave.keySet()) { fieldsCsvBuilder.append(field.getInternalFieldName()); fieldsCsvBuilder.append(", "); valuePlaceholdersCsvBuilder.append("?, "); fieldsAndPlaceholdersCsvBuilder.append(field.getInternalFieldName()); fieldsAndPlaceholdersCsvBuilder.append("=?, "); } // Used if doing an INSERT String fieldsCsv = fieldsCsvBuilder.toString(); String valuePlaceholdersCsv = valuePlaceholdersCsvBuilder.toString(); // Used if doing an UPDATE String fieldsAndPlaceholdersCsv = fieldsAndPlaceholdersCsvBuilder.toString(); if (!fieldsCsv.equals("")) { fieldsCsv = fieldsCsv.substring(0, fieldsCsv.length() - 2); valuePlaceholdersCsv = valuePlaceholdersCsv.substring(0, valuePlaceholdersCsv.length() - 2); fieldsAndPlaceholdersCsv = fieldsAndPlaceholdersCsv.substring(0, fieldsAndPlaceholdersCsv.length() - 2); } if (newRecord) { SQLCodeBuilder.append("INSERT INTO " + table.getInternalTableName()); if (fieldsCsv.equals("")) { SQLCodeBuilder.append(" VALUES(default)"); } else { SQLCodeBuilder.append("(" + fieldsCsv + ") VALUES (" + valuePlaceholdersCsv + ")"); } } else { SQLCodeBuilder.append("UPDATE " + table.getInternalTableName() + " SET " + fieldsAndPlaceholdersCsv); if (globalEdit) { // add filter for various row ids SQLCodeBuilder.append(" WHERE " + table.getPrimaryKey().getInternalFieldName() + " in (?"); for (int i = 1; i < rowIds.size(); i++) { SQLCodeBuilder.append(",?"); } SQLCodeBuilder.append(")"); } else { // add filter for single row id SQLCodeBuilder.append(" WHERE " + table.getPrimaryKey().getInternalFieldName() + "=?"); } } Connection conn = null; int fieldNumber = 0; // Will be set if we're inserting a record int newRowId = -1; TableDataInfo tableData = new TableData(table); try { conn = this.dataSource.getConnection(); conn.setAutoCommit(false); PreparedStatement statement = conn.prepareStatement(SQLCodeBuilder.toString()); for (BaseField field : dataToSave.keySet()) { // If an exception is raised, currentField will be the field // which caused it // currentField = field; fieldNumber++; BaseValue fieldValue = dataToSave.get(field); if (field instanceof FileField) { if (fieldValue.isNull() || fieldValue.toString().equals("")) { throw new InputRecordException("No file specified for the upload", field); } } if (fieldValue.isNull()) { statement.setNull(fieldNumber, Types.NULL); } else { if (fieldValue instanceof TextValue) { String textValue = ((TextValue) fieldValue).toXmlString(); statement.setString(fieldNumber, textValue); } else if (fieldValue instanceof IntegerValue) { // if no related value, set relation field to null if (field instanceof RelationField && (((IntegerValue) fieldValue).getValueInteger() == -1) || (fieldValue.isNull())) { statement.setNull(fieldNumber, Types.NULL); } else { statement.setInt(fieldNumber, ((IntegerValue) fieldValue).getValueInteger()); } } else if (fieldValue instanceof DurationValue) { statement.setString(fieldNumber, ((DurationValue) fieldValue).getSqlFormatInterval()); } else if (fieldValue instanceof DecimalValue) { statement.setDouble(fieldNumber, ((DecimalValue) fieldValue).getValueFloat()); } else if (fieldValue instanceof DateValue) { if (((DateValue) fieldValue).getValueDate() != null) { java.util.Date javaDateValue = ((DateValue) fieldValue).getValueDate().getTime(); java.sql.Timestamp sqlTimestampValue = new java.sql.Timestamp(javaDateValue.getTime()); statement.setTimestamp(fieldNumber, sqlTimestampValue); } else { statement.setTimestamp(fieldNumber, null); } } else if (fieldValue instanceof CheckboxValue) { statement.setBoolean(fieldNumber, ((CheckboxValue) fieldValue).getValueBoolean()); } else if (fieldValue instanceof FileValue) { statement.setString(fieldNumber, ((FileValue) fieldValue).toString()); } else { throw new CodingErrorException("Field value " + fieldValue + " is of unknown type " + fieldValue.getClass().getSimpleName()); } } } // We've finished setting individual fields, if an SQL error occurs // after here we won't know which // field caused it without looking for it by other means // currentField = null; if (!newRecord) { if (globalEdit) { // Fill in the 'WHERE [row id field] in (?,..,?)' for use in // the UPDATE statement for (Integer aRowId : rowIds) { if (tableData.isRecordLocked(conn, sessionData, aRowId)) { throw new CantDoThatException( "Record " + aRowId + " from table " + table + " is locked to prevent editing"); } statement.setInt(++fieldNumber, aRowId); } } else { // Fill in the 'WHERE [row id field]=?' for use in the // UPDATE statement if (tableData.isRecordLocked(conn, sessionData, rowId)) { throw new CantDoThatException( "Record " + rowId + " from table " + table + " is locked to prevent editing"); } statement.setInt(fieldNumber + 1, rowId); } } int numRowsAffected = statement.executeUpdate(); statement.close(); if ((numRowsAffected != 1) && (!globalEdit)) { conn.rollback(); if (numRowsAffected > 0) { throw new ObjectNotFoundException(String.valueOf(numRowsAffected) + " records would be altered during a single record save"); } else { throw new ObjectNotFoundException( "The current record can't be found to edit - perhaps someone else has deleted it"); } } if (newRecord) { // Find the newly inserted Row ID // postgres-specific code, not database independent String SQLCode = "SELECT currval('" + table.getInternalTableName() + "_" + table.getPrimaryKey().getInternalFieldName() + "_seq')"; statement = conn.prepareStatement(SQLCode); ResultSet results = statement.executeQuery(); if (results.next()) { newRowId = results.getInt(1); } else { results.close(); statement.close(); throw new SQLException( "Row ID not found for the newly inserted record. '" + SQLCodeBuilder + "' didn't work"); } results.close(); statement.close(); } conn.commit(); } catch (SQLException sqlex) { // Find out which field caused the error by looking for internal // field names in the error message String errorMessage = sqlex.getMessage(); for (BaseField possibleCauseField : dataToSave.keySet()) { if (errorMessage.contains(possibleCauseField.getInternalFieldName())) { if (errorMessage.contains("check constraint")) { errorMessage = "The value " + dataToSave.get(possibleCauseField) + " falls outside the allowed range"; } else if (errorMessage.contains("not-null constraint")) { errorMessage = "No value entered"; } else if (errorMessage.contains("unique constraint")) { errorMessage = "Value " + dataToSave.get(possibleCauseField) + " is already in the database and cannot be entered again"; } else if (errorMessage.contains("foreign key constraint") && possibleCauseField instanceof RelationField) { errorMessage = "Please select a valid " + ((RelationField) possibleCauseField).getRelatedTable() + " record first"; } else { errorMessage = "Value " + dataToSave.get(possibleCauseField) + " not allowed (" + Helpers.replaceInternalNames(errorMessage, table.getDefaultReport()) + ")"; } throw new InputRecordException(errorMessage, possibleCauseField, sqlex); } } // Not able to find field errorMessage = Helpers.replaceInternalNames(errorMessage, table.getDefaultReport()); throw new InputRecordException(errorMessage, null, sqlex); } finally { if (conn != null) { conn.close(); } } // If any fields were files to upload, do the actual uploads. // Do this after the commit in case the uploads take a long time and // time out the SQL connection. for (BaseField field : dataToSave.keySet()) { if (field instanceof FileField) { try { if (newRecord) { this.uploadFile(request, (FileField) field, (FileValue) dataToSave.get(field), newRowId, multipartItems); } else { this.uploadFile(request, (FileField) field, (FileValue) dataToSave.get(field), rowId, multipartItems); } } catch (CantDoThatException cdtex) { throw new InputRecordException("Error uploading file: " + cdtex.getMessage(), field, cdtex); } catch (FileUploadException fuex) { throw new InputRecordException("Error uploading file: " + fuex.getMessage(), field, fuex); } } } if (newRecord) { sessionData.setRowId(table, newRowId); } this.logLastDataChangeTime(request); logLastTableDataChangeTime(table); UsageLogger usageLogger = new UsageLogger(this.dataSource); AppUserInfo user = null; if (request.getRemoteUser() == null) { user = ServletUtilMethods.getPublicUserForRequest(request, this.authManager.getAuthenticator()); } else { user = this.authManager.getUserByUserName(request, request.getRemoteUser()); } // Send websocket notification // UsageLogger.sendNotification(user, table, sessionData.getReport(), // rowId, "edit", "Record saved: " + dataToSave); // Log everything apart from hidden (auto set) fields Map<BaseField, BaseValue> dataToLog = new LinkedHashMap<BaseField, BaseValue>(); for (Map.Entry<BaseField, BaseValue> entrySet : dataToSave.entrySet()) { BaseField field = entrySet.getKey(); if (!field.getHidden()) { BaseValue value = entrySet.getValue(); dataToLog.put(field, value); } } if (newRecord) { usageLogger.logDataChange(user, table, null, AppAction.SAVE_NEW_RECORD, newRowId, dataToLog.toString()); } else if (globalEdit) { // TODO: need better logging of global edits usageLogger.logDataChange(user, table, null, AppAction.GLOBAL_EDIT, rowId, dataToLog.toString()); } else { BaseField fieldUpdated = null; Set<BaseField> fieldSet = new TreeSet<BaseField>(); for (BaseField field : dataToSave.keySet()) { if (!field.getHidden()) { fieldSet.add(field); } } if (fieldSet.size() == 1) { fieldUpdated = new LinkedList<BaseField>(fieldSet).getFirst(); } usageLogger.logDataChange(user, table, fieldUpdated, AppAction.UPDATE_RECORD, rowId, dataToLog.toString()); } UsageLogger.startLoggingThread(usageLogger); }
From source file:com.sun.faban.harness.webclient.CLIServlet.java
private void doSubmit(String[] reqC, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (reqC.length < 3) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benchmark and profile not provided in request."); return;//from w w w. j a v a2s . co m } // first is the bench name BenchmarkDescription desc = BenchmarkDescription.getDescription(reqC[1]); if (desc == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benchmark " + reqC[1] + " not deployed."); return; } try { String user = null; String password = null; boolean hasPermission = true; ArrayList<String> runIdList = new ArrayList<String>(); DiskFileUpload fu = new DiskFileUpload(); // No maximum size fu.setSizeMax(-1); // maximum size that will be stored in memory fu.setSizeThreshold(8192); // the location for saving data larger than getSizeThreshold() fu.setRepositoryPath(Config.TMP_DIR); List fileItems = null; try { fileItems = fu.parseRequest(request); } catch (FileUploadException e) { throw new ServletException(e); } for (Iterator i = fileItems.iterator(); i.hasNext();) { FileItem item = (FileItem) i.next(); String fieldName = item.getFieldName(); if (item.isFormField()) { if ("sun".equals(fieldName)) { user = item.getString(); } else if ("sp".equals(fieldName)) { password = item.getString(); } continue; } if (reqC[2] == null) // No profile break; if (desc == null) break; if (!"configfile".equals(fieldName)) continue; if (Config.SECURITY_ENABLED) { if (Config.CLI_SUBMITTER == null || Config.CLI_SUBMITTER.length() == 0 || !Config.CLI_SUBMITTER.equals(user)) { hasPermission = false; break; } if (Config.SUBMIT_PASSWORD == null || Config.SUBMIT_PASSWORD.length() == 0 || !Config.SUBMIT_PASSWORD.equals(password)) { hasPermission = false; break; } } String usrDir = Config.PROFILES_DIR + reqC[2]; File dir = new File(usrDir); if (dir.exists()) { if (!dir.isDirectory()) { logger.severe(usrDir + " should be a directory"); dir.delete(); logger.fine(dir + " deleted"); } else logger.fine("Saving parameter file to" + usrDir); } else { logger.fine("Creating new profile directory for " + reqC[2]); if (dir.mkdirs()) logger.fine("Created new profile directory " + usrDir); else logger.severe("Failed to create profile " + "directory " + usrDir); } // Save the latest config file into the profile directory String dstFile = Config.PROFILES_DIR + reqC[2] + File.separator + desc.configFileName + "." + desc.shortName; item.write(new File(dstFile)); runIdList.add(RunQ.getHandle().addRun(user, reqC[2], desc)); } response.setContentType("text/plain"); Writer writer = response.getWriter(); if (!hasPermission) { response.setStatus(HttpServletResponse.SC_FORBIDDEN); writer.write("Permission denied!\n"); } if (runIdList.size() == 0) writer.write("No runs submitted.\n"); for (String newRunId : runIdList) { writer.write(newRunId); } writer.flush(); writer.close(); } catch (ServletException e) { logger.log(Level.SEVERE, e.getMessage(), e); throw e; } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); throw e; } catch (Exception e) { logger.log(Level.SEVERE, e.getMessage(), e); throw new ServletException(e); } }
From source file:com.sun.faban.harness.webclient.RunUploader.java
/** * Post method to upload the run.//from www. j a v a2s .c o m * @param request The servlet request * @param response The servlet response * @throws ServletException If the servlet fails * @throws IOException If there is an I/O error */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String host = null; String key = null; boolean origin = false; // Whether the upload is to the original // run requestor. If so, key is needed. DiskFileUpload fu = new DiskFileUpload(); // No maximum size fu.setSizeMax(-1); // maximum size that will be stored in memory fu.setSizeThreshold(4096); // the location for saving data that is larger than getSizeThreshold() fu.setRepositoryPath(Config.TMP_DIR); List fileItems = null; try { fileItems = fu.parseRequest(request); } catch (FileUploadException e) { throw new ServletException(e); } // assume we know there are two files. The first file is a small // text file, the second is unknown and is written to a file on // the server for (Iterator i = fileItems.iterator(); i.hasNext();) { FileItem item = (FileItem) i.next(); String fieldName = item.getFieldName(); if (item.isFormField()) { if ("host".equals(fieldName)) { host = item.getString(); } else if ("key".equals(fieldName)) { key = item.getString(); } else if ("origin".equals(fieldName)) { String value = item.getString(); origin = Boolean.parseBoolean(value); } continue; } if (host == null) { logger.warning("Host not received on upload request!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } // The host, origin, key info must be here before we receive // any file. if (origin) { if (Config.daemonMode != Config.DaemonModes.POLLEE) { logger.warning("Origin upload requested. Not pollee!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } if (key == null) { logger.warning("Origin upload requested. No key!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } if (!RunRetriever.authenticate(host, key)) { logger.warning("Origin upload requested. " + "Host/key mismatch: " + host + '/' + key + "!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } } if (!"jarfile".equals(fieldName)) // ignore continue; String fileName = item.getName(); if (fileName == null) // We don't process files without names continue; // Now, this name may have a path attached, dependent on the // source browser. We need to cover all possible clients... char[] pathSeparators = { '/', '\\' }; // Well, if there is another separator we did not account for, // just add it above. for (int j = 0; j < pathSeparators.length; j++) { int idx = fileName.lastIndexOf(pathSeparators[j]); if (idx != -1) { fileName = fileName.substring(idx + 1); break; } } // Ignore all non-jarfiles. if (!fileName.toLowerCase().endsWith(".jar")) continue; File uploadFile = new File(Config.TMP_DIR, host + '.' + fileName); try { item.write(uploadFile); } catch (Exception e) { throw new ServletException(e); } File runTmp = unjarTmp(uploadFile); String runId = null; if (origin) { // Change origin file to know where this run came from. File metaInf = new File(runTmp, "META-INF"); File originFile = new File(metaInf, "origin"); if (!originFile.exists()) { logger.warning("Origin upload requested. Origin file" + "does not exist!"); response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE, "Origin file does not exist!"); break; } RunId origRun; try { origRun = new RunId(readStringFromFile(originFile).trim()); } catch (IndexOutOfBoundsException e) { response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE, "Origin file error. " + e.getMessage()); break; } runId = origRun.getBenchName() + '.' + origRun.getRunSeq(); String localHost = origRun.getHostName(); if (!localHost.equals(Config.FABAN_HOST)) { logger.warning("Origin upload requested. Origin host " + localHost + " does not match this host " + Config.FABAN_HOST + '!'); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } writeStringToFile(runTmp.getName(), originFile); } else { runId = runTmp.getName(); } if (recursiveCopy(runTmp, new File(Config.OUT_DIR, runId))) { uploadFile.delete(); recursiveDelete(runTmp); } else { logger.warning("Origin upload requested. Copy error!"); response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE); break; } response.setStatus(HttpServletResponse.SC_CREATED); break; } }
From source file:com.sun.faban.harness.webclient.Uploader.java
/** * Responsible for uploading the runs.//from www .j a v a 2s . c o m * @param request * @param response * @return String * @throws java.io.IOException * @throws javax.servlet.ServletException * @throws java.lang.ClassNotFoundException */ public String uploadRuns(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, ClassNotFoundException { // 3. Upload the run HashSet<String> duplicateSet = new HashSet<String>(); HashSet<String> replaceSet = new HashSet<String>(); String host = null; String key = null; boolean origin = false; // Whether the upload is to the original // run requestor. If so, key is needed. DiskFileUpload fu = new DiskFileUpload(); // No maximum size fu.setSizeMax(-1); // maximum size that will be stored in memory fu.setSizeThreshold(4096); // the location for saving data that is larger than // getSizeThreshold() fu.setRepositoryPath(Config.TMP_DIR); List fileItems = null; try { fileItems = fu.parseRequest(request); } catch (FileUploadException e) { throw new ServletException(e); } // assume we know there are two files. The first file is a small // text file, the second is unknown and is written to a file on // the server for (Iterator i = fileItems.iterator(); i.hasNext();) { FileItem item = (FileItem) i.next(); String fieldName = item.getFieldName(); if (item.isFormField()) { if ("host".equals(fieldName)) { host = item.getString(); } else if ("replace".equals(fieldName)) { replaceSet.add(item.getString()); } else if ("key".equals(fieldName)) { key = item.getString(); } else if ("origin".equals(fieldName)) { String value = item.getString(); origin = Boolean.parseBoolean(value); } continue; } if (host == null) { logger.warning("Host not received on upload request!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } // The host, origin, key info must be here before we receive // any file. if (origin) { if (Config.daemonMode != Config.DaemonModes.POLLEE) { logger.warning("Origin upload requested. Not pollee!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } if (key == null) { logger.warning("Origin upload requested. No key!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } if (!RunRetriever.authenticate(host, key)) { logger.warning("Origin upload requested. " + "Host/key mismatch: " + host + '/' + key + "!"); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } } if (!"jarfile".equals(fieldName)) // ignore continue; String fileName = item.getName(); if (fileName == null) // We don't process files without names continue; // Now, this name may have a path attached, dependent on the // source browser. We need to cover all possible clients... char[] pathSeparators = { '/', '\\' }; // Well, if there is another separator we did not account for, // just add it above. for (int j = 0; j < pathSeparators.length; j++) { int idx = fileName.lastIndexOf(pathSeparators[j]); if (idx != -1) { fileName = fileName.substring(idx + 1); break; } } // Ignore all non-jarfiles. if (!fileName.toLowerCase().endsWith(".jar")) continue; File uploadFile = new File(Config.TMP_DIR, host + '.' + fileName); try { item.write(uploadFile); } catch (Exception e) { throw new ServletException(e); } int runIdx = fileName.lastIndexOf("."); String runName = host + '.' + fileName.substring(0, runIdx); File runTmp = unjarTmp(uploadFile); //Check if archived recently if (checkIfArchived(runName) && !(replaceSet.contains(fileName.substring(0, runIdx)))) { //Now check if timestamps are same //Get the timestamp of run being uploaded at this point //ts is timestamp of run being uploaded String ts = getRunIdTimestamp(runName, Config.TMP_DIR); l1: while (true) { //reposTs is timestamp of run being compared in the //repository String reposTs = getRunIdTimestamp(runName, Config.OUT_DIR); if (reposTs.equals(ts)) { duplicateSet.add(fileName.substring(0, runIdx)); } else { runName = getNextRunId(runName); if (checkIfArchived(runName)) continue l1; File newRunNameFile = new File(Config.OUT_DIR, runName); if (newRunNameFile.exists()) { recursiveDelete(newRunNameFile); } if (recursiveCopy(runTmp, newRunNameFile)) { newRunNameFile.setLastModified(runTmp.lastModified()); uploadTags(runName); uploadFile.delete(); recursiveDelete(runTmp); } else { logger.warning("Origin upload requested. " + "Copy error!"); response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE); break; } response.setStatus(HttpServletResponse.SC_CREATED); } break; } } else { //File runTmp = unjarTmp(uploadFile); String runId = null; if (origin) { // Change origin file to know where this run came from. File metaInf = new File(runTmp, "META-INF"); File originFile = new File(metaInf, "origin"); if (!originFile.exists()) { logger.warning("Origin upload requested. " + "Origin file does not exist!"); response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE, "Origin file does not exist!"); break; } RunId origRun; try { origRun = new RunId(readStringFromFile(originFile).trim()); } catch (IndexOutOfBoundsException e) { response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE, "Origin file error. " + e.getMessage()); break; } runId = origRun.getBenchName() + '.' + origRun.getRunSeq(); String localHost = origRun.getHostName(); if (!localHost.equals(Config.FABAN_HOST)) { logger.warning("Origin upload requested. Origin " + "host" + localHost + " does not match this host " + Config.FABAN_HOST + '!'); response.sendError(HttpServletResponse.SC_FORBIDDEN); break; } writeStringToFile(runTmp.getName(), originFile); } else { runId = runTmp.getName(); } File newRunFile = new File(Config.OUT_DIR, runId); if (newRunFile.exists()) { recursiveDelete(newRunFile); } if (recursiveCopy(runTmp, newRunFile)) { newRunFile.setLastModified(runTmp.lastModified()); uploadFile.delete(); uploadTags(runId); recursiveDelete(runTmp); } else { logger.warning("Origin upload requested. Copy error!"); response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE); break; } } response.setStatus(HttpServletResponse.SC_CREATED); //break; } request.setAttribute("duplicates", duplicateSet); return "/duplicates.jsp"; }
From source file:com.sun.faban.harness.webclient.Deployer.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try {// www . j a v a2 s.c om List<String> deployNames = new ArrayList<String>(); List<String> cantDeployNames = new ArrayList<String>(); List<String> errDeployNames = new ArrayList<String>(); List<String> invalidNames = new ArrayList<String>(); List<String> errHeaders = new ArrayList<String>(); List<String> errDetails = new ArrayList<String>(); String user = null; String password = null; boolean clearConfig = false; boolean hasPermission = true; // Check whether we have to return text or html boolean acceptHtml = false; String acceptHeader = request.getHeader("Accept"); if (acceptHeader != null && acceptHeader.indexOf("text/html") >= 0) acceptHtml = true; DiskFileUpload fu = new DiskFileUpload(); // No maximum size fu.setSizeMax(-1); // maximum size that will be stored in memory fu.setSizeThreshold(4096); // the location for saving data that is larger than getSizeThreshold() fu.setRepositoryPath(Config.TMP_DIR); StringWriter messageBuffer = new StringWriter(); PrintWriter messageWriter = new PrintWriter(messageBuffer); List fileItems = null; try { fileItems = fu.parseRequest(request); } catch (FileUploadException e) { throw new ServletException(e); } // assume we know there are two files. The first file is a small // text file, the second is unknown and is written to a file on // the server for (Iterator i = fileItems.iterator(); i.hasNext();) { FileItem item = (FileItem) i.next(); String fieldName = item.getFieldName(); if (item.isFormField()) { if ("user".equals(fieldName)) { user = item.getString(); } else if ("password".equals(fieldName)) { password = item.getString(); } else if ("clearconfig".equals(fieldName)) { String value = item.getString(); clearConfig = Boolean.parseBoolean(value); } continue; } if (!"jarfile".equals(fieldName)) continue; String fileName = item.getName(); if (fileName == null) // We don't process files without names continue; if (Config.SECURITY_ENABLED) { if (Config.DEPLOY_USER == null || Config.DEPLOY_USER.length() == 0 || !Config.DEPLOY_USER.equals(user)) { hasPermission = false; break; } if (Config.DEPLOY_PASSWORD == null || Config.DEPLOY_PASSWORD.length() == 0 || !Config.DEPLOY_PASSWORD.equals(password)) { hasPermission = false; break; } } // Now, this name may have a path attached, dependent on the // source browser. We need to cover all possible clients... char[] pathSeparators = { '/', '\\' }; // Well, if there is another separator we did not account for, // just add it above. for (int j = 0; j < pathSeparators.length; j++) { int idx = fileName.lastIndexOf(pathSeparators[j]); if (idx != -1) { fileName = fileName.substring(idx + 1); break; } } // Ignore all non-jarfiles. if (!fileName.toLowerCase().endsWith(".jar")) { invalidNames.add(fileName); continue; } String deployName = fileName.substring(0, fileName.length() - 4); if (deployName.indexOf('.') > -1) { invalidNames.add(deployName); continue; } // Check if we can deploy benchmark or service. // If running or queued, we won't deploy benchmark. // If service being used by current run,we won't deploy service. if (!DeployUtil.canDeployBenchmark(deployName) || !DeployUtil.canDeployService(deployName)) { cantDeployNames.add(deployName); continue; } File uploadFile = new File(Config.BENCHMARK_DIR, fileName); if (uploadFile.exists()) FileHelper.recursiveDelete(uploadFile); try { item.write(uploadFile); } catch (Exception e) { throw new ServletException(e); } try { DeployUtil.processUploadedJar(uploadFile, deployName); } catch (Exception e) { messageWriter.println("\nError deploying " + deployName + ".\n"); e.printStackTrace(messageWriter); errDeployNames.add(deployName); continue; } deployNames.add(deployName); } if (clearConfig) for (String benchName : deployNames) DeployUtil.clearConfig(benchName); if (!hasPermission) response.setStatus(HttpServletResponse.SC_FORBIDDEN); else if (cantDeployNames.size() > 0) response.setStatus(HttpServletResponse.SC_CONFLICT); else if (errDeployNames.size() > 0) response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE); else if (invalidNames.size() > 0) response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE); else if (deployNames.size() > 0) response.setStatus(HttpServletResponse.SC_CREATED); else response.setStatus(HttpServletResponse.SC_NOT_FOUND); StringBuilder b = new StringBuilder(); if (deployNames.size() > 0) { if (deployNames.size() > 1) b.append("Benchmarks/services "); else b.append("Benchmark/service "); for (int i = 0; i < deployNames.size(); i++) { if (i > 0) b.append(", "); b.append((String) deployNames.get(i)); } b.append(" deployed."); errHeaders.add(b.toString()); b.setLength(0); } if (invalidNames.size() > 0) { if (invalidNames.size() > 1) b.append("Invalid deploy files "); else b.append("Invalid deploy file "); for (int i = 0; i < invalidNames.size(); i++) { if (i > 0) b.append(", "); b.append((String) invalidNames.get(i)); } b.append(". Deploy files must have .jar extension."); errHeaders.add(b.toString()); b.setLength(0); } if (cantDeployNames.size() > 0) { if (cantDeployNames.size() > 1) b.append("Cannot deploy benchmarks/services "); else b.append("Cannot deploy benchmark/services "); for (int i = 0; i < cantDeployNames.size(); i++) { if (i > 0) b.append(", "); b.append((String) cantDeployNames.get(i)); } b.append(". Benchmark/services being used or " + "queued up for run."); errHeaders.add(b.toString()); b.setLength(0); } if (errDeployNames.size() > 0) { if (errDeployNames.size() > 1) { b.append("Error deploying benchmarks/services "); for (int i = 0; i < errDeployNames.size(); i++) { if (i > 0) b.append(", "); b.append((String) errDeployNames.get(i)); } } errDetails.add(messageBuffer.toString()); errHeaders.add(b.toString()); b.setLength(0); } if (!hasPermission) errHeaders.add("Permission denied!"); Writer writer = response.getWriter(); if (acceptHtml) writeHtml(request, writer, errHeaders, errDetails); else writeText(writer, errHeaders, errDetails); writer.flush(); writer.close(); } catch (ServletException e) { logger.log(Level.SEVERE, e.getMessage(), e); throw e; } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); throw e; } catch (Exception e) { logger.log(Level.SEVERE, e.getMessage(), e); throw new ServletException(e); } }
From source file:forseti.admon.JAdmCFDDlg.java
@SuppressWarnings({ "rawtypes", "unchecked" }) public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.doPost(request, response); String adm_cfdi_dlg = ""; request.setAttribute("adm_cfdi_dlg", adm_cfdi_dlg); String mensaje = ""; short idmensaje = -1; if (request.getContentType() != null && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1) { if (!getSesion(request).getRegistrado()) { irApag("/forsetiweb/errorAtributos.jsp", request, response); return; } else {/*from www .j ava2 s.c om*/ if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } try { Vector archivos = new Vector(); DiskFileUpload fu = new DiskFileUpload(); List items = fu.parseRequest(request); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (!item.isFormField()) archivos.addElement(item); } SubirArchivosCFD(request, response, archivos); return; } catch (FileUploadException e) { e.printStackTrace(); return; } } } if (request.getParameter("proceso") != null && !request.getParameter("proceso").equals("")) { if (request.getParameter("proceso").equals("VERIFICAR_CFD")) { // Verificacion if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (VerificarCertificados(request, response)) AgregarCertificado(request, response); return; } else if (request.getParameter("proceso").equals("CAMBIAR_EMISOR")) { System.out.println(request.getParameter("cfd_regimenfiscal")); // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametros(request, response)) { Cambiar(request, response); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ACTUALIZAR")) { irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("AGREGAR_CERTIFICADO")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } Integer subir_archivos = new Integer(2); request.setAttribute("subir_archivos", subir_archivos); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/subir_archivos.jsp?verif=/servlet/CEFAdmCFDDlg&archivo_1=cer&archivo_2=key&proceso=AGREGAR_CERTIFICADO&subproceso=ENVIAR", request, response); return; } else if (request.getParameter("proceso").equals("AGREGAR_EXPEDITOR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametrosExpRec(request, response)) { AgregarCambiarExpRec(request, response, JForsetiApl.AGREGAR, "EXP"); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ACTUALIZAR")) { irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CAMBIAR_EXPEDITOR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametrosExpRec(request, response)) { AgregarCambiarExpRec(request, response, JForsetiApl.CAMBIAR, "EXP"); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ACTUALIZAR")) { irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("AGREGAR_RECEPTOR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametrosExpRec(request, response)) { AgregarCambiarExpRec(request, response, JForsetiApl.AGREGAR, "REC"); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CAMBIAR_RECEPTOR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametrosExpRec(request, response)) { AgregarCambiarExpRec(request, response, JForsetiApl.CAMBIAR, "REC"); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("GENERAR_CE")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JAdmPeriodosSet set = new JAdmPeriodosSet(request); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (!set.getAbsRow(0).getCerrado()) { idmensaje = 1; mensaje = "PRECAUCION: No se pueden generar los archivos XML de la Contabilidada Electrnica, porque el mes seleccionado no esta cerrado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } GenerarXMLCE(request, response, ano, mes); return; } else { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_cegen.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CONSULTAR_ST")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JContCEModuloSet set = new JContCEModuloSet(request, getSesion(request).getSesion("ADM_CFDI").getEspecial()); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (set.getAbsRow(0).getGenerado().equals("N")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede consultar el registro de estatus porque no existe el archivo generado en este mes."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_cons.jsp", request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CONSULTAR_ARCHIVOS")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JContCEModuloSet set = new JContCEModuloSet(request, getSesion(request).getSesion("ADM_CFDI").getEspecial()); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (set.getAbsRow(0).getGenerado().equals("N")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede consultar el archivo porque este mes no esta generado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } String nomArchFech; if (mes < 10) nomArchFech = "-" + ano + "-0" + mes; else nomArchFech = "-" + ano + "-" + mes; String nomArch = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech + ".xml"; String salida = ""; File f = new File(nomArch); FileReader fr = null; BufferedReader br = null; try { fr = new FileReader(f); br = new BufferedReader(fr); String s; while ((s = br.readLine()) != null) { salida += s + "\n"; } br.close(); } catch (IOException e1) { salida += e1; } response.setContentType("application/xml"); PrintWriter out = response.getWriter(); out.print(salida); /* String nombres[] = { nomArch + "catalogo" + nomArchFech + ".xml", nomArch + "balanza" + nomArchFech + ".xml", nomArch + "polizas" + nomArchFech + ".xml", nomArch + "CE" + nomArchFech + ".log"}; String destinos[] = { "catalogo" + nomArchFech + ".xml", "balanza" + nomArchFech + ".xml", "polizas" + nomArchFech + ".xml", "CE" + nomArchFech + ".log" }; JBajarArchivo fd = new JBajarArchivo(); fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(), ("CE" + nomArchFech + ".zip"), nombres, destinos); */ return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("VALIDAR_ARCHIVOS")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JContCEModuloSet set = new JContCEModuloSet(request, getSesion(request).getSesion("ADM_CFDI").getEspecial()); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (set.getAbsRow(0).getGenerado().equals("N")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede validar el archivo porque este mes no esta generado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } String nomArchFech; if (mes < 10) nomArchFech = "-" + ano + "-0" + mes; else nomArchFech = "-" + ano + "-" + mes; String nomArch = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech + ".xml"; //Validacin String ERROR = "", archivoXML = ""; boolean NAME_SPACE_AWARE = true; boolean VALIDATING = true; String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage"; String SCHEMA_LANGUAGE_VAL = "http://www.w3.org/2001/XMLSchema"; String SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource"; String sFichXsd = "/usr/local/forseti/rec/"; if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CECAT")) sFichXsd += "CatalogoCuentas_1_1.xsd"; else if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CEBAL")) sFichXsd += "BalanzaComprobacion_1_1.xsd"; else sFichXsd += "PolizasPeriodo_1_1.xsd"; try { FileReader file = new FileReader(nomArch); BufferedReader buff = new BufferedReader(file); boolean eof = false; while (!eof) { String line = buff.readLine(); if (line == null) eof = true; else archivoXML += line + "\n"; } InputStream is = new ByteArrayInputStream(archivoXML.getBytes()); Reader xsdReader = new FileReader(sFichXsd); //System.out.println("xmlReader:" + pathxml + "\n" + "xsdReader:" + sFichXsd + "\n" + "xsdReader2:" + sFichXsd2); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(NAME_SPACE_AWARE); factory.setValidating(VALIDATING); SAXParser parser = factory.newSAXParser(); parser.setProperty(SCHEMA_LANGUAGE, SCHEMA_LANGUAGE_VAL); parser.setProperty(SCHEMA_SOURCE, new InputSource(xsdReader)); DefaultHandler handler = new XmlDefaultHandler(); //parser.parse(new InputSource(xmlReader), handler); parser.parse(is, handler); } catch (FactoryConfigurationError e) { e.printStackTrace(); ERROR += "FactoryConfiguration: " + e.getMessage() + "<br>"; } catch (ParserConfigurationException e) { e.printStackTrace(); ERROR += "ParserConfiguration: " + e.getMessage() + "<br>"; } catch (SAXException e) { e.printStackTrace(); ERROR += "SAX: " + e.getMessage() + "<br>"; } catch (IOException e) { e.printStackTrace(); ERROR += "IO: " + e.getMessage() + "<br>"; } if (!ERROR.equals("")) { idmensaje = 3; mensaje = "ERROR: Al verificar sintaxis del XML:" + "<br>" + ERROR; getSesion(request).setID_Mensaje(idmensaje, mensaje); } else { idmensaje = 0; mensaje = "El XML se verific y paso las pruebas de sintaxis"; getSesion(request).setID_Mensaje(idmensaje, mensaje); } irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("DESCARGAR_ARCHIVOS")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JContCEModuloSet set = new JContCEModuloSet(request, getSesion(request).getSesion("ADM_CFDI").getEspecial()); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (set.getAbsRow(0).getGenerado().equals("N")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede descargar el archivo porque este mes no esta generado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } String nomArchFech; if (mes < 10) nomArchFech = "-" + ano + "-0" + mes; else nomArchFech = "-" + ano + "-" + mes; SAXBuilder builder = new SAXBuilder(); File xmlFile = new File("/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech + ".xml"); try { Document document = (Document) builder.build(xmlFile); Element CEGeneral = document.getRootElement(); String nomArchZIP = CEGeneral.getAttributeValue("RFC") + CEGeneral.getAttributeValue("Anio") + CEGeneral.getAttributeValue("Mes"); String destino = CEGeneral.getAttributeValue("RFC") + CEGeneral.getAttributeValue("Anio") + CEGeneral.getAttributeValue("Mes"); if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CECAT")) // es de egresos (Compras. Gastos) { nomArchZIP += "CT.zip"; destino += "CT.xml"; } else if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() .equals("CEBAL")) { nomArchZIP += "B" + CEGeneral.getAttributeValue("TipoEnvio") + ".zip"; destino += "B" + CEGeneral.getAttributeValue("TipoEnvio") + ".xml"; } else { nomArchZIP += "PL.zip"; destino += "PL.xml"; } String nombres[] = { "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech + ".xml" }; String destinos[] = { destino }; JBajarArchivo fd = new JBajarArchivo(); fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(), nomArchZIP, nombres, destinos); return; } catch (JDOMException e) { idmensaje = 1; mensaje = "PRECAUCION: No se puede descargar el archivo porque este mes no esta generado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("DESENLAZAR_DOCUMENTO")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_DESENLAZAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_DESENLAZAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_DESENLAZAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { String status = JUtil.getSesion(request).getSesion("ADM_CFDI").getStatus(); if (!status.equals("OTROS")) { JCFDCompViewSet set = new JCFDCompViewSet(request, status); set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'"; set.Open(); if (set.getNumRows() < 1) { idmensaje = 3; mensaje = "ERROR: No se puede desenlazar el registro porque no existe"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (set.getAbsRow(0).getFSI_Tipo().equals("ENT")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede desenlazar el documento porque aun no se encuentra enlazado a ningn registro."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { JCFDCompOtrSet set = new JCFDCompOtrSet(request); set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'"; set.Open(); if (set.getAbsRow(0).getFSI_Tipo().equals("ENT")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede desenlazar el documento porque aun no se encuentra enlazado a ningn registro."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } DesenlazarDocumento(request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("ELIMINAR_DOCUMENTO")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_CARGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_CARGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_CARGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { String status = JUtil.getSesion(request).getSesion("ADM_CFDI").getStatus(); if (!status.equals("OTROS")) { JCFDCompViewSet set = new JCFDCompViewSet(request, status); set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'"; set.Open(); if (set.getNumRows() < 1) { idmensaje = 3; mensaje = "ERROR: No se puede eliminar el registro porque no existe"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (!set.getAbsRow(0).getFSI_Tipo().equals("ENT")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede eliminar el documento porque ya se encuentra enlazado a un registro."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { JCFDCompOtrSet set = new JCFDCompOtrSet(request); set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'"; set.Open(); if (!set.getAbsRow(0).getFSI_Tipo().equals("ENT")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede eliminar el documento porque ya se encuentra enlazado a un registro."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } EliminarDocumento(request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // si no se mandan parametros, manda a error { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } }
From source file:nextapp.echo2.webcontainer.filetransfer.JakartaCommonsFileUploadProvider.java
/** * @see nextapp.echo2.webcontainer.filetransfer.MultipartUploadSPI#updateComponent(nextapp.echo2.webrender.Connection, * nextapp.echo2.app.filetransfer.UploadSelect) *//*from w ww . ja va 2 s. co m*/ public void updateComponent(Connection conn, UploadSelect uploadSelect) throws IOException, ServletException { DiskFileUpload handler = null; HttpServletRequest request = null; List items = null; Iterator it = null; FileItem item = null; boolean searching = true; InputStream in = null; int size = 0; String contentType = null; String name = null; try { handler = new DiskFileUpload(); handler.setSizeMax(getFileUploadSizeLimit()); handler.setSizeThreshold(getMemoryCacheThreshold()); handler.setRepositoryPath(getDiskCacheLocation().getCanonicalPath()); request = conn.getRequest(); items = handler.parseRequest(request); searching = true; it = items.iterator(); while (it.hasNext() && searching) { item = (FileItem) it.next(); if (UploadFormService.FILE_PARAMETER_NAME.equals(item.getFieldName())) { in = item.getInputStream(); size = (int) item.getSize(); contentType = item.getContentType(); name = item.getName(); File tempFile = writeTempFile(in, uploadSelect); UploadEvent uploadEvent = new UploadEvent(tempFile, size, contentType, name); UploadSelectPeer.activateUploadSelect(uploadSelect, uploadEvent); searching = false; } } } catch (FileUploadException e) { throw new IOException(e.getMessage()); } }
From source file:ngse.org.FileUploadServlet.java
static protected String FileUpload(Map<String, String> fields, List<String> filesOnServer, HttpServletRequest request, HttpServletResponse response) { boolean isMultipart = ServletFileUpload.isMultipartContent(request); // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); int MaxMemorySize = 200000000; int MaxRequestSize = MaxMemorySize; String tmpDir = System.getProperty("TMP", "/tmp"); factory.setSizeThreshold(MaxMemorySize); factory.setRepository(new File(tmpDir)); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("utf8"); upload.setSizeMax(MaxRequestSize);//from w ww. j a v a2s . c om try { List<FileItem> items = upload.parseRequest(request); // Process the uploaded items Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if (item.isFormField()) {//k -v String name = item.getFieldName(); String value = item.getString("utf-8"); fields.put(name, value); } else { String fieldName = item.getFieldName(); String fileName = item.getName(); if (fileName == null || fileName.length() < 1) { return "file name is empty."; } String localFileName = ServletConfig.fileServerRootDir + File.separator + "tmp" + File.separator + fileName; String contentType = item.getContentType(); boolean isInMemory = item.isInMemory(); long sizeInBytes = item.getSize(); File uploadedFile = new File(localFileName); item.write(uploadedFile); filesOnServer.add(localFileName); } } return "success"; } catch (FileUploadException e) { e.printStackTrace(); return e.getMessage(); } catch (Exception e) { e.printStackTrace(); return e.getMessage(); } }
From source file:nu.validator.servlet.MultipartFormDataFilter.java
@Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; if (ServletFileUpload.isMultipartContent(request)) { try {/*from ww w . j a v a 2 s . com*/ boolean utf8 = false; String contentType = null; Map<String, String[]> params = new HashMap<>(); InputStream fileStream = null; ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream fileItemStream = iter.next(); if (fileItemStream.isFormField()) { String fieldName = fileItemStream.getFieldName(); if ("content".equals(fieldName) || "fragment".equals(fieldName)) { utf8 = true; String[] parser = params.get("parser"); if (parser != null && parser[0].startsWith("xml")) { contentType = "application/xml"; } else { contentType = "text/html"; } request.setAttribute("nu.validator.servlet.MultipartFormDataFilter.type", "textarea"); fileStream = fileItemStream.openStream(); break; } else { putParam(params, fieldName, utf8ByteStreamToString(fileItemStream.openStream())); } } else { String fileName = fileItemStream.getName(); if (fileName != null) { putParam(params, fileItemStream.getFieldName(), fileName); request.setAttribute("nu.validator.servlet.MultipartFormDataFilter.filename", fileName); Matcher m = EXTENSION.matcher(fileName); if (m.matches()) { contentType = EXTENSION_TO_TYPE.get(m.group(1)); } } if (contentType == null) { contentType = fileItemStream.getContentType(); } request.setAttribute("nu.validator.servlet.MultipartFormDataFilter.type", "file"); fileStream = fileItemStream.openStream(); break; } } if (fileStream == null) { fileStream = new ByteArrayInputStream(new byte[0]); } if (contentType == null) { contentType = "application/octet-stream"; } chain.doFilter(new RequestWrapper(request, params, contentType, utf8, fileStream), response); } catch (FileUploadException e) { response.sendError(415, e.getMessage()); } catch (CharacterCodingException e) { response.sendError(415, e.getMessage()); } catch (IOException e) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, e.getMessage()); } } else { chain.doFilter(req, res); } }
From source file:org.activiti.rest.api.identity.UserPictureResource.java
@Put public void updateUserPicture(Representation representation) { User user = getUserFromRequest();/*from w w w . j a v a 2s . c o m*/ if (!MediaType.MULTIPART_FORM_DATA.isCompatible(representation.getMediaType())) { throw new ResourceException(Status.CLIENT_ERROR_UNSUPPORTED_MEDIA_TYPE.getCode(), "The request should be of type 'multipart/form-data'.", null, null); } RestletFileUpload upload = new RestletFileUpload(new DiskFileItemFactory()); try { FileItem uploadItem = null; List<FileItem> items = upload.parseRepresentation(representation); String mimeType = MediaType.IMAGE_JPEG.toString(); for (FileItem fileItem : items) { if (fileItem.isFormField()) { if ("mimeType".equals(fileItem.getFieldName())) { mimeType = fileItem.getString("UTF-8"); } } else if (fileItem.getName() != null) { uploadItem = fileItem; } } if (uploadItem == null) { throw new ActivitiIllegalArgumentException("No file content was found in request body."); } int size = ((Long) uploadItem.getSize()).intValue(); // Copy file-body in a bytearray as the engine requires this ByteArrayOutputStream bytesOutput = new ByteArrayOutputStream(size); IOUtils.copy(uploadItem.getInputStream(), bytesOutput); Picture newPicture = new Picture(bytesOutput.toByteArray(), mimeType); ActivitiUtil.getIdentityService().setUserPicture(user.getId(), newPicture); } catch (FileUploadException e) { throw new ActivitiException("Error with uploaded file: " + e.getMessage(), e); } catch (IOException e) { throw new ActivitiException("Error while reading uploaded file: " + e.getMessage(), e); } }