Example usage for org.apache.commons.fileupload DiskFileUpload parseRequest

List of usage examples for org.apache.commons.fileupload DiskFileUpload parseRequest

Introduction

In this page you can find the example usage for org.apache.commons.fileupload DiskFileUpload parseRequest.

Prototype

public List  parseRequest(HttpServletRequest req) throws FileUploadException 

Source Link

Document

Processes an <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a> compliant <code>multipart/form-data</code> stream.

Usage

From source file:com.krawler.workflow.module.dao.BaseBuilderDao.java

public void parseRequest(HttpServletRequest request, HashMap<String, String> arrParam, ArrayList<FileItem> fi,
        boolean fileUpload) throws ServiceException {
    DiskFileUpload fu = new DiskFileUpload();
    FileItem fi1 = null;// w  w w .j a  va2 s.c o  m
    List fileItems = null;
    try {
        fileItems = fu.parseRequest(request);
    } catch (FileUploadException e) {
        logger.warn(e.getMessage(), e);
        throw ServiceException.FAILURE("Admin.createUser", e);
    }
    for (Iterator k = fileItems.iterator(); k.hasNext();) {
        fi1 = (FileItem) k.next();
        if (fi1.isFormField()) {
            try {
                arrParam.put(fi1.getFieldName(), fi1.getString("UTF-8"));
            } catch (UnsupportedEncodingException e) {
                logger.error(e.getMessage());
            }
        } else {
            if (fi1.getSize() != 0) {
                fi.add(fi1);
                fileUpload = true;
            }
        }
    }

}

From source file:com.sun.faban.harness.webclient.Uploader.java

/**
 * Responsible for uploading the runs./*www. j  av  a2s . co  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.krawler.esp.servlets.ExportImportContactsServlet.java

private File getfile(HttpServletRequest request) {

    DiskFileUpload fu = new DiskFileUpload();
    String Ext = null;//  w ww  . jav  a2s.c o m
    File uploadFile = null;
    List fileItems = null;
    try {
        fileItems = fu.parseRequest(request);
    } catch (FileUploadException e) {
        KrawlerLog.op.warn("Problem While Uploading file :" + e.toString());
    }
    for (Iterator i = fileItems.iterator(); i.hasNext();) {
        FileItem fi = (FileItem) i.next();
        if (!fi.isFormField()) {
            String fileName = null;
            try {
                fileName = new String(fi.getName().getBytes(), "UTF8");
                if (fileName.contains(".")) {
                    Ext = fileName.substring(fileName.lastIndexOf("."));
                }
                if (fi.getSize() != 0) {
                    uploadFile = File.createTempFile("contacts", ".csv");
                    fi.write(uploadFile);
                }
            } catch (Exception e) {
                KrawlerLog.op.warn("Problem While Reading file :" + e.toString());
            }
        } else {
            arrParam.put(fi.getFieldName(), fi.getString());
        }
    }

    return uploadFile;
}

From source file:com.meikai.common.web.servlet.FCKeditorConnectorServlet.java

/**
 * Manage the Post requests (FileUpload).<br>
 * //from w w w.j ava 2s  .  c o  m
 * The servlet accepts commands sent in the following format:<br>
 * connector?Command=FileUpload&Type=ResourceType&CurrentFolder=FolderPath<br>
 * <br>
 * It store the file (renaming it in case a file with the same name exists)
 * and then return an HTML file with a javascript command in it.
 * 
 */
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    if (debug)
        System.out.println("--- BEGIN Connector DOPOST ---");

    response.setContentType("text/html; charset=UTF-8");
    response.setHeader("Cache-Control", "no-cache");

    String retVal = "0";
    String newName = "";

    // edit check user uploader file size
    int contextLength = request.getContentLength();
    int fileSize = (int) (((float) contextLength) / ((float) (1024)));
    PrintWriter out = response.getWriter();

    if (fileSize < 30240) {

        String commandStr = request.getParameter("Command");
        String typeStr = request.getParameter("Type");
        String currentFolderStr = request.getParameter("CurrentFolder");
        String currentPath = baseDir + typeStr + "/" + dateCreated.substring(0, 4) + "/"
                + dateCreated.substring(5) + currentFolderStr;
        // create user dir
        makeDirectory(getServletContext().getRealPath("/"), currentPath);
        String currentDirPath = getServletContext().getRealPath(currentPath);
        // edit end ++++++++++++++++

        if (debug)
            System.out.println(currentDirPath);

        if (!commandStr.equals("FileUpload"))
            retVal = "203";
        else {
            DiskFileUpload upload = new DiskFileUpload();

            try {

                upload.setSizeMax(1 * 1024 * 1024); // ??,??: 
                upload.setSizeThreshold(4096); // ???,??: 
                upload.setRepositoryPath("c:/temp/"); // ?getSizeThreshold()? 
                List items = upload.parseRequest(request);

                Map fields = new HashMap();

                Iterator iter = items.iterator();
                while (iter.hasNext()) {
                    FileItem item = (FileItem) iter.next();
                    if (item.isFormField())
                        fields.put(item.getFieldName(), item.getString());
                    else
                        fields.put(item.getFieldName(), item);
                }
                FileItem uplFile = (FileItem) fields.get("NewFile");
                String fileNameLong = uplFile.getName();
                fileNameLong = fileNameLong.replace('\\', '/');
                String[] pathParts = fileNameLong.split("/");
                String fileName = pathParts[pathParts.length - 1];

                String nameWithoutExt = getNameWithoutExtension(fileName);
                String ext = getExtension(fileName);
                File pathToSave = new File(currentDirPath, fileName);
                if (FckeditorUtil.extIsAllowed(allowedExtensions, deniedExtensions, typeStr, ext)) {
                    int counter = 1;
                    while (pathToSave.exists()) {
                        newName = nameWithoutExt + "(" + counter + ")" + "." + ext;
                        retVal = "201";
                        pathToSave = new File(currentDirPath, newName);
                        counter++;
                    }
                    uplFile.write(pathToSave);
                    // ?
                    if (logger.isInfoEnabled()) {
                        logger.info("...");
                    }
                } else {
                    retVal = "202";
                    if (debug)
                        System.out.println("Invalid file type: " + ext);
                }
            } catch (Exception ex) {
                ex.printStackTrace();
                retVal = "203";
            }
        }
    } else {
        retVal = "204";
    }
    out.println("<script type=\"text/javascript\">");
    out.println("window.parent.frames['frmUpload'].OnUploadCompleted(" + retVal + ",'" + newName + "');");
    out.println("</script>");
    out.flush();
    out.close();

    if (debug)
        System.out.println("--- END DOPOST ---");

}

From source file:com.krawler.spring.mailIntegration.mailIntegrationController.java

public ModelAndView mailIntegrate(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    KwlReturnObject kmsg = null;/*  w w  w  .ja v  a2 s . co  m*/
    JSONObject obj = new JSONObject();
    String url = storageHandlerImpl.GetSOAPServerUrl();
    String res = "";
    boolean isFormSubmit = false;
    boolean isDefaultModelView = true;
    ModelAndView mav = null;
    try {
        if (!StringUtil.isNullOrEmpty(request.getParameter("action"))
                && request.getParameter("action").equals("getoutboundconfid")) {
            String str = "";
            url += "getOutboundConfiId.php";
            URL u = new URL(url);
            URLConnection uc = u.openConnection();
            uc.setDoOutput(true);
            uc.setUseCaches(false);
            uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            PrintWriter pw = new PrintWriter(uc.getOutputStream());
            pw.println(str);
            pw.close();
            BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
            String line = "";

            while ((line = in.readLine()) != null) {
                res += line;
            }
            in.close();
        } else if (!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction"))
                && request.getParameter("emailUIAction").equals("uploadAttachment")) {
            isDefaultModelView = false;
            url += "krawlermails.php";

            String pass = "";
            String currUser = sessionHandlerImplObj.getUserName(request) + "_";
            String userid = sessionHandlerImplObj.getUserid(request);

            String jsonStr = profileHandlerDAOObj.getUser_hash(userid);
            JSONObject currUserAuthInfo = new JSONObject(jsonStr);
            if (currUserAuthInfo.has("userhash")) {
                currUser += currUserAuthInfo.getString("subdomain");
                pass = currUserAuthInfo.getString("userhash");
            }

            Enumeration en = request.getParameterNames();
            String str = "username=" + currUser + "&user_hash=" + pass;
            while (en.hasMoreElements()) {
                String paramName = (String) en.nextElement();
                String paramValue = request.getParameter(paramName);
                str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue);
            }

            List fileItems = null;
            HashMap<String, String> arrParam = new HashMap<String, String>();
            ArrayList<FileItem> fi = new ArrayList<FileItem>();
            //                if (request.getParameter("email_attachment") != null) {
            DiskFileUpload fu = new DiskFileUpload();
            fileItems = fu.parseRequest(request);
            //                    crmDocumentDAOObj.parseRequest(fileItems, arrParam, fi, fileUpload);
            FileItem fi1 = null;
            for (Iterator k = fileItems.iterator(); k.hasNext();) {
                fi1 = (FileItem) k.next();
                if (fi1.isFormField()) {
                    arrParam.put(fi1.getFieldName(), fi1.getString("UTF-8"));
                } else {
                    if (fi1.getSize() != 0) {
                        fi.add(fi1);
                    }
                }
            }
            //                }
            long sizeinmb = 10; // 10 MB
            long maxsize = sizeinmb * 1024 * 1024;
            if (fi.size() > 0) {
                for (int cnt = 0; cnt < fi.size(); cnt++) {

                    if (fi.get(cnt).getSize() <= maxsize) {
                        try {
                            byte[] filecontent = fi.get(cnt).get();

                            URL u = new URL(url + "?" + str);
                            URLConnection uc = u.openConnection();
                            uc.setDoOutput(true);
                            uc.setUseCaches(false);
                            uc.setRequestProperty("Content-Type",
                                    "multipart/form-data; boundary=---------------------------4664151417711");
                            uc.setRequestProperty("Content-length", "" + filecontent.length);
                            uc.setRequestProperty("Cookie", "");

                            OutputStream outstream = uc.getOutputStream();

                            String newline = "\r\n";
                            String b1 = "";
                            b1 += "-----------------------------4664151417711" + newline;
                            b1 += "Content-Disposition: form-data; name=\"email_attachment\"; filename=\""
                                    + fi.get(cnt).getName() + "\"" + newline;
                            b1 += "Content-Type: text" + newline;
                            b1 += newline;

                            String b2 = "";
                            b2 += newline + "-----------------------------4664151417711--" + newline;

                            String b3 = "";
                            b3 += "-----------------------------4664151417711" + newline;
                            b3 += "Content-Disposition: form-data; name=\"addval\";" + newline;
                            b3 += newline;

                            String b4 = "";
                            b4 += newline + "-----------------------------4664151417711--" + newline;

                            outstream.write(b1.getBytes());
                            outstream.write(b1.getBytes());
                            outstream.write(b1.getBytes());
                            outstream.write(fi.get(cnt).get());
                            outstream.write(b4.getBytes());
                            PrintWriter pw = new PrintWriter(outstream);
                            pw.println(str);
                            pw.close();
                            outstream.flush();

                            BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
                            String line = "";

                            while ((line = in.readLine()) != null) {
                                res += line;
                            }
                            in.close();
                        } catch (Exception e) {
                            throw ServiceException.FAILURE(e.getMessage(), e);
                        }
                    } else {
                        JSONObject jerrtemp = new JSONObject();
                        jerrtemp.put("Success", "Fail");
                        jerrtemp.put("errmsg", "Attachment size should be upto " + sizeinmb + "mb");
                        res = jerrtemp.toString();
                    }
                }
            } else {
                JSONObject jerrtemp = new JSONObject();
                jerrtemp.put("Success", "Fail");
                jerrtemp.put("errmsg", "Attachment file size should be greater than zero");
                res = jerrtemp.toString();
            }

        } else {

            url += "krawlermails.php";

            String pass = "";
            String currUser = sessionHandlerImplObj.getUserName(request) + "_";
            String userid = sessionHandlerImplObj.getUserid(request);

            String jsonStr = profileHandlerDAOObj.getUser_hash(userid);
            JSONObject currUserAuthInfo = new JSONObject(jsonStr);
            if (currUserAuthInfo.has("userhash")) {
                currUser += currUserAuthInfo.getString("subdomain");
                pass = currUserAuthInfo.getString("userhash");
            }

            Enumeration en = request.getParameterNames();
            String str = "username=" + currUser + "&user_hash=" + pass;
            while (en.hasMoreElements()) {
                String paramName = (String) en.nextElement();
                String paramValue = request.getParameter(paramName);
                str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue);
            }

            URL u = new URL(url);
            URLConnection uc = u.openConnection();
            uc.setDoOutput(true);
            uc.setUseCaches(false);
            uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            PrintWriter pw = new PrintWriter(uc.getOutputStream());
            pw.println(str);
            pw.close();

            if ((!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction"))
                    && request.getParameter("emailUIAction").equals("getMessageListXML"))
                    || (!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction")) && request
                            .getParameter("emailUIAction").equals("getMessageListKrawlerFoldersXML"))) {
                //response.setContentType("text/xml;charset=UTF-8");
                isFormSubmit = true;
                int totalCnt = 0;
                int unreadCnt = 0;
                JSONObject jobj = new JSONObject();
                JSONArray jarr = new JSONArray();
                DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
                Document doc = docBuilder.parse(uc.getInputStream());

                NodeList cntentity = doc.getElementsByTagName("TotalCount");
                Node cntNode = cntentity.item(0);
                if (cntNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element firstPersonElement = (Element) cntNode;
                    totalCnt = Integer.parseInt(firstPersonElement.getChildNodes().item(0).getNodeValue());
                }

                cntentity = doc.getElementsByTagName("UnreadCount");
                cntNode = cntentity.item(0);
                if (cntNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element firstPersonElement = (Element) cntNode;
                    unreadCnt = Integer.parseInt(firstPersonElement.getChildNodes().item(0).getNodeValue());
                }
                String dateFormatId = sessionHandlerImpl.getDateFormatID(request);
                String timeFormatId = sessionHandlerImpl.getUserTimeFormat(request);
                String timeZoneDiff = sessionHandlerImpl.getTimeZoneDifference(request);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                // check for Mail server protocol
                boolean isYahoo = false;

                if (request.getParameter("mbox").equals("INBOX")) {
                    u = new URL(url);
                    uc = u.openConnection();
                    uc.setDoOutput(true);
                    uc.setUseCaches(false);
                    uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                    str = "username=" + currUser + "&user_hash=" + pass
                            + "&action=EmailUIAjax&emailUIAction=getIeAccount&ieId="
                            + request.getParameter("ieId") + "&module=Emails&to_pdf=true";
                    pw = new PrintWriter(uc.getOutputStream());
                    pw.println(str);
                    pw.close();
                    BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
                    String line = "";
                    while ((line = in.readLine()) != null) {
                        res += line;
                    }
                    in.close();

                    JSONObject ieIDInfo = new JSONObject(res);
                    if (ieIDInfo.getString("server_url").equals("pop.mail.yahoo.com"))
                        isYahoo = true;
                }
                sdf.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
                DateFormat userdft = null;
                if (!isYahoo)
                    userdft = KwlCommonTablesDAOObj.getUserDateFormatter(dateFormatId, timeFormatId,
                            timeZoneDiff);
                else
                    userdft = KwlCommonTablesDAOObj.getOnlyDateFormatter(dateFormatId, timeFormatId);

                NodeList entity = doc.getElementsByTagName("Emails");
                NodeList email = ((Element) entity.item(0)).getElementsByTagName("Email");
                for (int i = 0; i < email.getLength(); i++) {
                    JSONObject tmpObj = new JSONObject();
                    Node rowElement = email.item(i);
                    if (rowElement.getNodeType() == Node.ELEMENT_NODE) {
                        NodeList childNodes = rowElement.getChildNodes();
                        for (int j = 0; j < childNodes.getLength(); j++) {
                            Node node = childNodes.item(j);
                            if (node.getNodeType() == Node.ELEMENT_NODE) {
                                Element firstPersonElement = (Element) node;
                                if (firstPersonElement != null) {
                                    NodeList textFNList = firstPersonElement.getChildNodes();
                                    if (textFNList.item(0) != null) {
                                        if (request.getSession().getAttribute("iPhoneCRM") != null) {
                                            String body = ((Node) textFNList.item(0)).getNodeValue().trim();
                                            if (body.contains("&lt;"))
                                                body = body.replace("&lt;", "<");
                                            if (body.contains("&gt;"))
                                                body = body.replace("&gt;", ">");
                                            tmpObj.put(node.getNodeName(), body);
                                        } else {
                                            String value = ((Node) textFNList.item(0)).getNodeValue().trim();
                                            if (node.getNodeName().equals("date")) {
                                                value = userdft.format(sdf.parse(value));
                                            }
                                            tmpObj.put(node.getNodeName(), value);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    jarr.put(tmpObj);
                }
                jobj.put("data", jarr);
                jobj.put("totalCount", totalCnt);
                jobj.put("unreadCount", unreadCnt);
                res = jobj.toString();
            } else {
                BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
                String line = "";

                while ((line = in.readLine()) != null) {
                    res += line;
                }
                in.close();
                if ((!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction"))
                        && request.getParameter("emailUIAction").equals("fillComposeCache"))) {
                    isFormSubmit = true;
                } else if (!StringUtil.isNullOrEmpty(request.getParameter("emailUIAction"))
                        && request.getParameter("emailUIAction").equals("refreshKrawlerFolders")) {
                    if (res.equals("Not a valid entry method")) {
                        ArrayList filter_names = new ArrayList();
                        ArrayList filter_params = new ArrayList();
                        filter_names.add("u.userID");
                        filter_params.add(userid);
                        HashMap<String, Object> requestParams = new HashMap<String, Object>();
                        KwlReturnObject kwlobject = profileHandlerDAOObj.getUserDetails(requestParams,
                                filter_names, filter_params);
                        List li = kwlobject.getEntityList();
                        if (li.size() >= 0) {
                            if (li.iterator().hasNext()) {
                                User user = (User) li.iterator().next();
                                String returnStr = addUserEntryForEmails(
                                        user.getCompany().getCreator().getUserID(), user, user.getUserLogin(),
                                        user.getUserLogin().getPassword(), false);
                                JSONObject emailresult = new JSONObject(returnStr);
                                if (Boolean.parseBoolean(emailresult.getString("success"))) {
                                    pw = new PrintWriter(uc.getOutputStream());
                                    pw.println(str);
                                    pw.close();
                                    in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
                                    line = "";
                                    while ((line = in.readLine()) != null) {
                                        res += line;
                                    }
                                    in.close();
                                }
                            }
                        }
                    }
                } else if (res.equals("bool(false)")) {
                    res = "false";
                }
            }
        }
        if (!isFormSubmit) {
            JSONObject resjobj = new JSONObject();
            resjobj.put("valid", true);
            resjobj.put("data", res);
            res = resjobj.toString();
        }
        if (isDefaultModelView)
            mav = new ModelAndView("jsonView-ex", "model", res);
        else
            mav = new ModelAndView("jsonView", "model", res);
    } catch (SessionExpiredException e) {
        mav = new ModelAndView("jsonView-ex", "model", "{'valid':false}");
        System.out.println(e.getMessage());
    } catch (Exception e) {
        mav = new ModelAndView("jsonView-ex", "model",
                "{'valid':true,data:{success:false,errmsg:'" + e.getMessage() + "'}}");
        System.out.println(e.getMessage());
    }
    return mav;
}

From source file:com.krawler.esp.servlets.importICSServlet.java

private File getfile(HttpServletRequest request) {
    DiskFileUpload fu = new DiskFileUpload();
    String Ext = null;/*from   ww  w  .  ja va  2 s. c o  m*/
    File uploadFile = null;
    List fileItems = null;
    try {
        fileItems = fu.parseRequest(request);
    } catch (FileUploadException e) {
        KrawlerLog.op.warn("Problem While Uploading file :" + e.toString());
    }
    for (Iterator i = fileItems.iterator(); i.hasNext();) {
        FileItem fi = (FileItem) i.next();
        if (!fi.isFormField()) {
            String fileName = null;
            try {
                fileName = new String(fi.getName().getBytes(), "UTF8");
                if (fileName.contains(".")) {
                    Ext = fileName.substring(fileName.lastIndexOf("."));
                }
                if (fi.getSize() != 0) {
                    uploadFile = File.createTempFile("iCalDeskeraTemp", ".ics");
                    fi.write(uploadFile);
                }
            } catch (Exception e) {
                KrawlerLog.op.warn("Problem While Reading file :" + e.toString());
            }
        } else {
            arrParam.put(fi.getFieldName(), fi.getString());
        }
    }
    return uploadFile;
}

From source file:com.krawler.esp.portalmsg.Mail.java

public static String insertMailMsg(Connection conn, javax.servlet.http.HttpServletRequest request,
        String companyid) throws ServiceException, ParseException, JSONException {
    org.apache.commons.fileupload.DiskFileUpload fu = new org.apache.commons.fileupload.DiskFileUpload();
    java.util.List fileItems = null;
    org.apache.commons.fileupload.FileItem fi = null;
    int sizeinmb = forummsgcomm.getmaxfilesize(conn, companyid);
    long maxsize = sizeinmb * 1024 * 1024;
    fu.setSizeMax(maxsize);//www. j a v a2 s  .  c  om
    boolean fileupload = false;
    java.util.HashMap arrParam = new java.util.HashMap();
    JSONObject jobj = new JSONObject();
    try {
        fileItems = fu.parseRequest(request);
    } catch (org.apache.commons.fileupload.FileUploadException e) {
        com.krawler.utils.json.base.JSONObject jerrtemp = new com.krawler.utils.json.base.JSONObject();
        if (e.getClass().getSimpleName().equalsIgnoreCase("SizeLimitExceededException")) {
            jerrtemp.put("msg", "For attachments, maximum file size allowed is " + sizeinmb + "MB");
        } else {
            jerrtemp.put("msg", "Problem while uploading file.");
        }
        jerrtemp.put("Success", "Fail");
        jobj.append("data", jerrtemp);
        return jobj.toString();
    }
    for (java.util.Iterator k = fileItems.iterator(); k.hasNext();) {
        fi = (org.apache.commons.fileupload.FileItem) k.next();
        arrParam.put(fi.getFieldName(), fi.getString());
        if (!fi.isFormField()) {
            if (fi.getSize() > maxsize) {
                com.krawler.utils.json.base.JSONObject jerrtemp = new com.krawler.utils.json.base.JSONObject();
                jerrtemp.put("Success", "Fail");
                jerrtemp.put("msg", "Attachment size should be upto " + sizeinmb + "MB");
                jobj.append("data", jerrtemp);
                return jobj.toString();
            }
            fileupload = true;
        }
    }
    String poster_id = request.getParameter("userId");
    String post_subject = StringUtil
            .serverHTMLStripper(java.net.URLDecoder.decode(arrParam.get("title").toString()));
    String post_text = java.net.URLDecoder.decode(arrParam.get("ptxt").toString());
    String folder = "1";
    Boolean readflag = false;
    String last_folder_id = "1";
    String reply_to = "";
    String sendflag = StringUtil.serverHTMLStripper(request.getParameter("sendflag"));
    String post_id1 = "";
    String to_id = "";
    String msgFor = "";
    String fid = "";
    String sendefolderpostid = "";
    Boolean done = false;
    String[] tos = {};
    if (sendflag.compareTo("reply") == 0) {
        post_id1 = StringUtil.serverHTMLStripper(request.getParameter("repto"));
        msgFor = getUserFromPost(conn, post_id1);
        fid = StringUtil.serverHTMLStripper(request.getParameter("fid"));
        if (fid.compareTo("3") != 0) {
            to_id = msgFor;
        }
    } else if (sendflag.compareTo("newmsg") == 0) {
        tos = request.getParameter("repto").split(";");
        fid = StringUtil.serverHTMLStripper(request.getParameter("fid"));
        msgFor = to_id;
    }
    int draft = Integer.parseInt(request.getParameter("draft"));

    String query;
    String post_id = "";
    String temp = "";
    //                JSONObject jobj = new JSONObject();
    String usr = to_id;
    DbResults rs1 = null;
    DbResults rs2 = null;
    int numRows = 0;
    boolean uploaded = false;
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    java.util.Date d = new java.util.Date();
    java.sql.Timestamp sqlPostDate = new java.sql.Timestamp(d.getTime());
    UserDAO userDao = new UserDAOImpl();
    if (sendflag.compareTo("reply") == 0) {
        if (draft == 1) {
            post_id = UUID.randomUUID().toString();
            folder = getDraftId(poster_id);//"3";
            last_folder_id = "0";
            readflag = false;
            reply_to = "";
            if (fid.compareTo("3") != 0) {
                if (StringUtil.isNullOrEmpty(to_id) || StringUtil.isNullOrEmpty(poster_id)) {
                    return KWLErrorMsgs.exSuccessFail;
                }
                query = "Insert into mailmessages (post_id, to_id, poster_id, post_subject, post_text, post_time, flag, folder, reply_to, last_folder_id, readflag) values ( ?, ?, ?, ?, ?,?,false, ?, ?, ?, ?)";
                post_id = UUID.randomUUID().toString();
                numRows = DbUtil.executeUpdate(conn, query, new Object[] { post_id, to_id, poster_id,
                        post_subject, post_text, sqlPostDate, folder, reply_to, last_folder_id, readflag });

            } else {
                if (StringUtil.isNullOrEmpty(post_id1)) {
                    return KWLErrorMsgs.exSuccessFail;
                }
                query = "Update mailmessages set post_subject=?, post_text=? where post_id=?";

                numRows = DbUtil.executeUpdate(conn, query, new Object[] { post_subject, post_text, post_id1 });
            }
        } else if (draft == 2) {
            if (StringUtil.isNullOrEmpty(post_id1)
                    || /*StringUtil.isNullOrEmpty(subdomain) || StringUtil.isNullOrEmpty(post_id) ||*/ StringUtil
                            .isNullOrEmpty(to_id)
                    || StringUtil.isNullOrEmpty(poster_id) /*|| StringUtil.isNullOrEmpty(reply_to)*/) {
                return KWLErrorMsgs.exSuccessFail;
            }

            //                query = "SELECT users.userid FROM users inner join userlogin on users.userid=userlogin.userid where username=? and users.companyid = ?;";
            //                rs2 = DbUtil.executeQuery(conn, query, new Object[]{post_id1, companyid});
            //
            //                if (rs2.next()) {
            to_id = msgFor;
            //                }
            query = "Insert into mailmessages (post_id, to_id, poster_id, post_subject, post_text, post_time, flag, folder, reply_to, last_folder_id, readflag) values ( ?, ?, ?, ?, ?, ?,false, ?, ?, ?, ?)";
            post_id = UUID.randomUUID().toString();
            numRows = DbUtil.executeUpdate(conn, query, new Object[] { post_id, to_id, poster_id, post_subject,
                    post_text, sqlPostDate, folder, reply_to, last_folder_id, readflag });

            if (fileupload) {
                forummsgcomm.doPost(conn, fileItems, post_id, sqlPostDate, poster_id, post_id);
                uploaded = true;
            }
            post_id = UUID.randomUUID().toString();
            folder = "0";
            last_folder_id = "0";
            readflag = false;
            reply_to = "";
            query = "Insert into mailmessages (post_id, to_id, poster_id, post_subject, post_text, post_time, flag, folder, reply_to, last_folder_id, readflag) values ( ?, ?, ?, ?, ?, ?,false, ?, ?, ?, ?)";

            numRows = DbUtil.executeUpdate(conn, query, new Object[] { post_id, to_id, poster_id, post_subject,
                    post_text, sqlPostDate, folder, reply_to, last_folder_id, readflag });
            if (fileupload) {
                forummsgcomm.doPost(conn, fileItems, post_id, sqlPostDate, poster_id, post_id);
            }

        } else {
            query = "SELECT poster_id FROM mailmessages where post_id=?";
            DbResults rs = DbUtil.executeQuery(conn, query, post_id1);
            while (rs.next()) {
                to_id = rs.getString(1);
            }
        }
    } else {
        if (draft != 1) {
            if (draft == 3) {
                for (int t = 0; t < tos.length; t++) {
                    to_id = StringUtil.serverHTMLStripper(tos[t]);
                    if (to_id.contains("@")) {
                        query = "SELECT userid FROM users where emailid=?;";
                        rs2 = DbUtil.executeQuery(conn, query, to_id);

                        if (rs2.next()) {
                            to_id = (rs2.getString(1));
                        } else {
                            usr = to_id;
                            to_id = "-1"; //for invalid username
                        }
                    } else {
                        query = "SELECT users.userid FROM users inner join userlogin on users.userid = userlogin.userid where userlogin.username=? and users.companyid = ?;";
                        rs2 = DbUtil.executeQuery(conn, query, new Object[] { to_id, companyid });

                        if (rs2.next()) {
                            to_id = (rs2.getString(1));
                        } else {
                            usr = AuthHandler.getUserName(conn, to_id);
                            if (StringUtil.isNullOrEmpty(usr)) {
                                usr = to_id;
                                to_id = "-1"; //for invalid username
                            }
                        }
                    }
                    if (to_id.compareTo("-1") != 0) {
                        if (StringUtil.isNullOrEmpty(to_id) || StringUtil.isNullOrEmpty(poster_id)) {
                            return KWLErrorMsgs.exSuccessFail;
                        }
                        if (fid.compareTo("3") != 0 && t == tos.length - 1) {
                            folder = "1";
                            query = "Insert into mailmessages (post_id, to_id, poster_id, post_subject, post_text, post_time, flag, folder, reply_to, last_folder_id, readflag) values ( ?, ?, ?, ?, ?, ?,false, ?, ?, ?, ?)";
                            post_id = UUID.randomUUID().toString();
                            numRows = DbUtil.executeUpdate(conn, query,
                                    new Object[] { post_id, to_id, poster_id, post_subject, post_text,
                                            sqlPostDate, folder, reply_to, last_folder_id, readflag });
                        }
                        folder = "0";
                        query = "Insert into mailmessages (post_id, to_id, poster_id, post_subject, post_text, post_time, flag, folder, reply_to, last_folder_id, readflag) values ( ?, ?, ?, ?, ?, ?,false, ?, ?, ?, ?)";
                        post_id = UUID.randomUUID().toString();
                        sendefolderpostid = post_id;
                        numRows = DbUtil.executeUpdate(conn, query,
                                new Object[] { post_id, to_id, poster_id, post_subject, post_text, sqlPostDate,
                                        folder, reply_to, last_folder_id, readflag });

                        //post_id = UUID.randomUUID().toString();
                        if (fileupload) {
                            forummsgcomm.doPost(conn, fileItems, post_id, sqlPostDate, poster_id, post_id);
                            uploaded = true;
                        }
                        last_folder_id = "0";
                        readflag = false;
                        reply_to = "";
                        done = true;
                    }
                    if (fid.compareTo("3") == 0 && done == true) {//move to this users sent mails
                        post_id = request.getParameter("postid");
                        String tempfolder = "1";
                        DbResults rstemp = null;
                        query = "select poster_id from mailmessages where post_id=?";
                        rstemp = DbUtil.executeQuery(conn, query, new Object[] { post_id });
                        if (rstemp.next()) {

                            query = "update mailmessages set to_id=?, poster_id=?, post_subject=?, post_text=?, post_time=?, flag=false, folder=?, reply_to=?, last_folder_id=?, readflag=? where post_id=?";

                            int tempnumrows = DbUtil.executeUpdate(conn, query,
                                    new Object[] { to_id, poster_id, post_subject, post_text, sqlPostDate,
                                            tempfolder, reply_to, last_folder_id, readflag, post_id });
                            if (tempnumrows == 0) {
                                if (to_id.compareTo("-1") == 0) {
                                    com.krawler.utils.json.base.JSONObject jtemp = new com.krawler.utils.json.base.JSONObject();
                                    jtemp.put("Success", "userfail");
                                    jtemp.put("Subject", usr);
                                    jobj.append("data", jtemp);
                                    return jobj.toString();
                                } else {
                                    return KWLErrorMsgs.exSuccessFail;
                                }
                            }
                        }
                    }
                }
            }
        } else {
            for (int t = 0; t < tos.length; t++) {
                to_id = StringUtil.serverHTMLStripper(tos[t]);
                post_id = request.getParameter("postid");
                folder = getDraftId(poster_id);//"3";
                last_folder_id = getDraftId(poster_id);

                readflag = false;
                reply_to = "";
                query = "SELECT users.userid FROM users inner join userlogin on users.userid = userlogin.userid where userlogin.username=? and users.companyid = ?;";
                rs2 = DbUtil.executeQuery(conn, query, new Object[] { to_id, companyid });

                if (rs2.next()) {
                    to_id = (rs2.getString(1));
                } else {
                    to_id = poster_id;
                }
                if (done == false) {
                    if (to_id.compareTo("-1") != 0) {
                        if (StringUtil.isNullOrEmpty(to_id) || StringUtil.isNullOrEmpty(poster_id)) {
                            return KWLErrorMsgs.exSuccessFail;
                        }
                        DbResults rstemp = null;
                        query = "select poster_id from mailmessages where post_id=?";
                        rstemp = DbUtil.executeQuery(conn, query, new Object[] { post_id });
                        if (rstemp.next()) {

                            query = "update mailmessages set to_id=?, poster_id=?, post_subject=?, post_text=?, post_time=?, flag=false, folder=?, reply_to=?, last_folder_id=?, readflag=? where post_id=?";

                            numRows = DbUtil.executeUpdate(conn, query,
                                    new Object[] { to_id, poster_id, post_subject, post_text, sqlPostDate,
                                            folder, reply_to, last_folder_id, readflag, post_id });

                        } else {

                            String tpost_id = UUID.randomUUID().toString();
                            folder = getDraftId(poster_id);//"3";
                            last_folder_id = "0";
                            readflag = false;
                            reply_to = "";
                            if (fid.compareTo("3") != 0) {
                                if (StringUtil.isNullOrEmpty(to_id) || StringUtil.isNullOrEmpty(poster_id)) {
                                    return KWLErrorMsgs.exSuccessFail;
                                }
                                query = "Insert into mailmessages (post_id, to_id, poster_id, post_subject, post_text, post_time, flag, folder, reply_to, last_folder_id, readflag) values ( ?, ?, ?, ?, ?,?,false, ?, ?, ?, ?)";
                                numRows = DbUtil.executeUpdate(conn, query,
                                        new Object[] { tpost_id, to_id, poster_id, post_subject, post_text,
                                                sqlPostDate, folder, reply_to, last_folder_id, readflag });
                            }
                        }
                    }
                }
            }
        }
    }
    if (fileupload && !uploaded) {
        forummsgcomm.doPost(conn, fileItems, post_id, sqlPostDate, poster_id, sendefolderpostid);
    }
    if (numRows == 0) {
        if (to_id.compareTo("-1") == 0) {
            com.krawler.utils.json.base.JSONObject jtemp = new com.krawler.utils.json.base.JSONObject();
            jtemp.put("Success", "userfail");
            jtemp.put("Subject", usr);
            jobj.append("data", jtemp);
            return jobj.toString();
        } else {
            return KWLErrorMsgs.exSuccessFail;
        }
    } else {
        String dateTime = "";
        String UserName = "";
        String Image = "";
        query = "SELECT userlogin.username,image FROM users inner join userlogin on users.userid=userlogin.userid where users.userid=?;";
        rs2 = DbUtil.executeQuery(conn, query, poster_id);

        if (rs2.next()) {
            UserName = (rs2.getString(1));
            Image = (rs2.getString(2));
        }
        if (draft == 1 && sendflag.compareTo("reply") == 0) {
            query = "SELECT post_time FROM mailmessages where post_id=?;";
            rs1 = DbUtil.executeQuery(conn, query, post_id1);

            if (rs1.next()) {
                dateTime = (rs1.getObject(1).toString());
            }
        } else {
            query = "SELECT post_time FROM mailmessages where post_id=?;";
            rs1 = DbUtil.executeQuery(conn, query, post_id);

            if (rs1.next()) {
                dateTime = (rs1.getObject(1).toString());
            }
        }
        String userTime = Timezone.toCompanyTimezone(conn, sqlPostDate.toString(), companyid);
        java.util.Date tempdate = sdf.parse(userTime);
        java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("yyyy-MM-dd h:mm a");
        JSONStringer j = new JSONStringer();
        com.krawler.utils.json.base.JSONObject jtemp = new com.krawler.utils.json.base.JSONObject();
        String success = "Success";
        if (folder.compareTo("3") == 0) {
            success = "Draft";
        }
        jtemp.put("Success", success);
        jtemp.put("post_time", sdf1.format(tempdate).toString());
        jtemp.put("flag", "false");
        jtemp.put("post_id", post_id);
        jtemp.put("post_subject", post_subject);
        jtemp.put("post_text", "");
        jtemp.put("poster_id", UserName);
        jtemp.put("readflag", "0");
        jtemp.put("imgsrc", Image);
        jtemp.put("senderid", poster_id);
        jobj.append("data", jtemp);
        /*temp = j.object().key("Success").value("Success").key("post_time")
        .value(sdf1.format(tempdate).toString()).key("flag").value(
        "false").key("post_id").value(post_id).key(
        "post_subject").value(post_subject)
        .key("post_text").value("").key("poster_id")
        .value(UserName).key("readflag").value("0").key("imgsrc")
        .value(Image).key("senderid").value(poster_id).endObject()
        .toString();*/

    }
    return jobj.toString();
}

From source file:com.sun.faban.harness.webclient.Deployer.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    try {//from ww w  .  j  a  va2  s  . c o m
        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: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  ava  2s  . c om*/
    }
    // 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.krawler.spring.crm.common.documentController.java

public ModelAndView addDocuments(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    JSONObject jobj = new JSONObject();
    JSONObject myjobj = new JSONObject();
    List fileItems = null;//from w w  w .j  a  va2 s.c o m
    String details = "";
    KwlReturnObject kmsg = null;
    String auditAction = "";
    String id = java.util.UUID.randomUUID().toString();
    // PrintWriter out = null;
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {
        response.setContentType("text/html;charset=UTF-8");
        // out = response.getWriter();
        String userid = sessionHandlerImpl.getUserid(request);
        String companyID = sessionHandlerImpl.getCompanyid(request);
        String map = request.getParameter("mapid");
        HashMap<String, String> arrParam = new HashMap<String, String>();
        boolean fileUpload = false;
        ArrayList<FileItem> fi = new ArrayList<FileItem>();
        if (request.getParameter("fileAdd") != null) {
            DiskFileUpload fu = new DiskFileUpload();
            fileItems = fu.parseRequest(request);
            crmDocumentDAOObj.parseRequest(fileItems, arrParam, fi, fileUpload);
        }
        String docID = "";
        for (int cnt = 0; cnt < fi.size(); cnt++) {
            kmsg = crmDocumentDAOObj.uploadFile(fi.get(cnt), userid, companyID, getServletContext());
            Docs doc = (Docs) kmsg.getEntityList().get(0);
            docID = doc.getDocid();
            String refid = arrParam.get("refid");
            jobj.put("userid", userid);
            jobj.put("docid", docID);
            jobj.put("companyid", companyID);
            jobj.put("id", id);
            jobj.put("map", map);
            jobj.put("refid", refid);
            crmDocumentDAOObj.saveDocumentMapping(jobj);
            String randomid = java.util.UUID.randomUUID().toString();
            crmDocumentDAOObj.insertDocumentOwnerEntry(randomid, userid, docID);
            if (map.equals("0")) {
                CrmCampaign c = (CrmCampaign) hibernateTemplate.get(CrmCampaign.class, refid);
                details = " Campaign - ";
                details += StringUtil.isNullOrEmpty(c.getCampaignname()) ? "" : c.getCampaignname();
                auditAction = AuditAction.CAMPAIGN_DOC_UPLOAD;
            } else if (map.equals("1")) {
                CrmLead l = (CrmLead) hibernateTemplate.get(CrmLead.class, refid);
                details = " Lead - ";
                details += StringUtil.isNullOrEmpty(l.getFirstname()) ? "" : l.getFirstname() + " ";
                details += StringUtil.isNullOrEmpty(l.getLastname()) ? "" : l.getLastname();
                auditAction = AuditAction.LEAD_DOC_UPLOAD;
            } else if (map.equals("2")) {
                CrmContact c = (CrmContact) hibernateTemplate.get(CrmContact.class, refid);
                details = " Contact - ";
                details += StringUtil.isNullOrEmpty(c.getFirstname()) ? "" : c.getFirstname() + " ";
                details += StringUtil.isNullOrEmpty(c.getLastname()) ? "" : c.getLastname();
                auditAction = AuditAction.CONTACT_DOC_UPLOAD;
            } else if (map.equals("3")) {
                CrmProduct p = (CrmProduct) hibernateTemplate.get(CrmProduct.class, refid);
                details = " Product - ";
                details += StringUtil.isNullOrEmpty(p.getProductname()) ? "" : p.getProductname();
                auditAction = AuditAction.PRODUCT_DOC_UPLOAD;
            } else if (map.equals("4")) {
                CrmAccount a = (CrmAccount) hibernateTemplate.get(CrmAccount.class, refid);
                details = " Account - ";
                details += StringUtil.isNullOrEmpty(a.getAccountname()) ? "" : a.getAccountname();
                auditAction = AuditAction.ACCOUNT_DOC_UPLOAD;
            } else if (map.equals("5")) {
                CrmOpportunity o = (CrmOpportunity) hibernateTemplate.get(CrmOpportunity.class, refid);
                details = " Opportunity - ";
                details += StringUtil.isNullOrEmpty(o.getOppname()) ? "" : o.getOppname();
                auditAction = AuditAction.OPPORTUNITY_DOC_UPLOAD;
            } else if (map.equals("6")) {
                CrmCase c = (CrmCase) hibernateTemplate.get(CrmCase.class, refid);
                details = " Case - ";
                details += StringUtil.isNullOrEmpty(c.getSubject()) ? "" : c.getSubject();
                auditAction = AuditAction.CASE_DOC_UPLOAD;
            } else if (map.equals("7")) {
                CrmActivityMaster am = (CrmActivityMaster) hibernateTemplate.get(CrmActivityMaster.class,
                        refid);
                details = " Activity - ";
                details += StringUtil.isNullOrEmpty(am.getFlag()) ? "" : am.getFlag() + " ";
                details += StringUtil.isNullOrEmpty(am.getCrmCombodataByStatusid().getValue()) ? ""
                        : am.getCrmCombodataByStatusid().getValue();
                auditAction = AuditAction.ACTIVITY_DOC_UPLOAD;
            } else if (map.equals("-1")) {
                details = " My - Document ";
                auditAction = AuditAction.MY_DOC_UPLOAD;
            }
            auditTrailDAOObj.insertAuditLog(auditAction,
                    " Docment: '" + doc.getDocname() + "' , uploaded for " + details, request, refid, id);
        }
        myjobj.put("ID", docID);
        txnManager.commit(status);
    } catch (Exception e) {
        logger.warn(e.getMessage(), e);
        txnManager.rollback(status);
    } finally {
        // out.close();
    }
    return new ModelAndView("jsonView", "model", myjobj.toString());
}