Example usage for org.apache.commons.validator GenericValidator isDate

List of usage examples for org.apache.commons.validator GenericValidator isDate

Introduction

In this page you can find the example usage for org.apache.commons.validator GenericValidator isDate.

Prototype

public static boolean isDate(String value, String datePattern, boolean strict) 

Source Link

Document

Checks if the field is a valid date.

Usage

From source file:net.sourceforge.fenixedu.presentationTier.validator.form.ValidateDate.java

public static boolean threeArgsDate(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        HttpServletRequest request, ServletContext application) {

    String valueString1 = ValidatorUtils.getValueAsString(bean, field.getProperty());

    String sProperty2 = ValidatorUtils.getValueAsString(bean, field.getVarValue("month"));
    String sProperty3 = ValidatorUtils.getValueAsString(bean, field.getVarValue("day"));

    if (((valueString1 == null) && (sProperty2 == null) && (sProperty3 == null))
            || ((valueString1.length() == 0) && (sProperty2.length() == 0) && (sProperty3.length() == 0))) {
        // errors.add(field.getKey(),Resources.getActionError(request, va,
        // field));
        return true;
    }/*  w  w  w .  j av a  2 s.c o m*/

    Integer year = null;
    Integer month = null;
    Integer day = null;

    try {
        year = new Integer(valueString1);
        month = new Integer(sProperty2);
        day = new Integer(sProperty3);
    } catch (NumberFormatException e) {
        errors.add(field.getKey(), Resources.getActionMessage(request, va, field));
        return false;
    }
    String date = new String(day.toString() + "/" + month.toString() + "/" + year);
    String datePattern = "dd/MM/yyyy";
    if (!GenericValidator.isDate(date, datePattern, false)) {
        errors.add(field.getKey(), Resources.getActionMessage(request, va, field));
        return false;

    }
    return true;
}

From source file:jp.primecloud.auto.api.util.ValidateUtil.java

/**
 *
 * ?//  www .  j  a v a2 s  .c om
 *
 * @param value ??
 * @param code ??
 * @param params ??
 */
public static void isDate(String value, String code, String datePattern, Object[] params) {
    if (GenericValidator.isDate(value, datePattern, false) == false) {
        throw new AutoApplicationException(code, params);
    }
}

From source file:com.primeleaf.krystal.web.action.cpanel.NewClassIndexAction.java

public WebView execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
    HttpSession session = request.getSession();
    User loggedInUser = (User) session.getAttribute(HTTPConstants.SESSION_KRYSTAL);
    if (request.getMethod().equalsIgnoreCase("POST")) {
        try {//from w  w  w . j ava2s  .co m
            int documentClassId = 0;
            try {
                documentClassId = Integer.parseInt(
                        request.getParameter("classid") != null ? request.getParameter("classid") : "0");
            } catch (Exception e) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid input");
                return (new ManageDocumentClassesAction().execute(request, response));
            }
            DocumentClass documentClass = DocumentClassDAO.getInstance().readDocumentClassById(documentClassId);
            if (documentClass == null) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid document class");
                return (new ManageDocumentClassesAction().execute(request, response));
            }

            String indexName = request.getParameter("txtIndexName") != null
                    ? request.getParameter("txtIndexName")
                    : "";
            String indexDisplayName = request.getParameter("txtIndexDisplayName") != null
                    ? request.getParameter("txtIndexDisplayName")
                    : "";
            String indexType = request.getParameter("cmbIndexType") != null
                    ? request.getParameter("cmbIndexType")
                    : IndexDefinition.INDEXTYPE_STRING;
            String indexLength = request.getParameter("txtIndexLength") != null
                    ? request.getParameter("txtIndexLength")
                    : "100";
            String mandatory = request.getParameter("radMandatory") != null
                    ? request.getParameter("radMandatory")
                    : "";
            String defaultValue = request.getParameter("txtDefaultValue") != null
                    ? request.getParameter("txtDefaultValue")
                    : "";

            int maximumIndexLength = Integer.parseInt(indexLength);

            if (!GenericValidator.maxLength(indexName, 50)) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Value too large for Index Name");
                return (new ClassIndexesAction().execute(request, response));
            }
            boolean isIndexDefinition = IndexDefinitionDAO.getInstance()
                    .validateIndexDefinition(documentClass.getIndexId(), indexName);
            if (isIndexDefinition) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Index " + indexName + " already exist");
                return (new ClassIndexesAction().execute(request, response));
            }
            if (defaultValue.trim().length() > 0) {
                if (IndexDefinition.INDEXTYPE_NUMBER.equalsIgnoreCase(indexType)) {
                    if (!GenericValidator.isDouble(defaultValue)) {
                        request.setAttribute(HTTPConstants.REQUEST_ERROR,
                                "Invalid input for Default Value : " + defaultValue);
                        return (new ClassIndexesAction().execute(request, response));
                    }
                }
                if (IndexDefinition.INDEXTYPE_DATE.equalsIgnoreCase(indexType)) {
                    if (!GenericValidator.isDate(defaultValue, "yyyy-MM-dd", true)) {
                        request.setAttribute(HTTPConstants.REQUEST_ERROR,
                                "Invalid input for Default Value : " + defaultValue);
                        return (new ClassIndexesAction().execute(request, response));
                    }
                }
            }
            if (!GenericValidator.maxLength(defaultValue, maximumIndexLength)) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR,
                        "Value too large for Default Value : " + defaultValue);
                return (new ClassIndexesAction().execute(request, response));
            }
            int i = documentClass.getIndexDefinitions().size();

            indexName = indexName.replace(' ', '_');
            IndexDefinition indexDefinition = new IndexDefinition();
            indexDefinition.setIndexColumnName(indexName);
            indexDefinition.setIndexDisplayName(indexDisplayName);
            indexDefinition.setDefaultValue(defaultValue);
            indexDefinition.setIndexMaxLength(maximumIndexLength);
            indexDefinition.setIndexType(indexType);
            indexDefinition.setDefaultFilter("");
            indexDefinition.setMandatory("Y".equalsIgnoreCase(mandatory));
            indexDefinition.setSequence((byte) (++i));

            int indexCount = documentClass.getIndexCount();
            if (indexCount == 0 && documentClass.getIndexId() == -1) {
                int indexId = IndexDefinitionDAO.getInstance().getNextIndexId();
                while (DocumentClassDAO.getInstance().readDocumentClasses(" INDEXID = " + indexId).size() > 0) {
                    indexId++;
                }
                documentClass.setIndexId(indexId);
            }
            indexDefinition.setIndexId(documentClass.getIndexId());

            IndexDefinitionDAO.getInstance().addIndexDefinition(indexDefinition);

            TableManager tableManager = new TableManager();
            tableManager.alterIndexTable(documentClass, indexDefinition);

            indexCount++;
            documentClass.setIndexCount(indexCount);
            DocumentClassDAO.getInstance().updateDocumentClass(documentClass);

            AuditLogManager.log(new AuditLogRecord(documentClass.getClassId(),
                    AuditLogRecord.OBJECT_DOCUMENTCLASS, AuditLogRecord.ACTION_EDITED,
                    loggedInUser.getUserName(), request.getRemoteAddr(), AuditLogRecord.LEVEL_INFO,
                    "Name : " + documentClass.getClassName(), "Index " + indexName + "  added"));

            request.setAttribute(HTTPConstants.REQUEST_MESSAGE,
                    "Index " + indexDefinition.getIndexDisplayName() + " added successfully");
            return (new ClassIndexesAction().execute(request, response));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    return (new ClassIndexesAction().execute(request, response));
}

From source file:com.primeleaf.krystal.web.action.console.EditDocumentIndexesAction.java

public WebView execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
    HttpSession session = request.getSession();
    User loggedInUser = (User) session.getAttribute(HTTPConstants.SESSION_KRYSTAL);
    try {/* w  ww .ja  v a2s  .  c  o m*/
        int documentId = 0;
        try {
            documentId = Integer.parseInt(request.getParameter("documentid"));
        } catch (Exception e) {
            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid input");
            return (new AJAXResponseView(request, response));
        }
        //   read HTTP request parameters
        String revisionId = request.getParameter("revisionid");

        Document document = DocumentDAO.getInstance().readDocumentById(documentId);

        if (document == null) {
            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid document");
            return (new AJAXResponseView(request, response));
        }
        if (Hit.STATUS_LOCKED.equalsIgnoreCase(document.getStatus())) {
            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Document already checkout");
            return (new AJAXResponseView(request, response));
        }
        AccessControlManager aclManager = new AccessControlManager();

        DocumentClass documentClass = DocumentClassDAO.getInstance()
                .readDocumentClassById(document.getClassId());
        ACL acl = aclManager.getACL(documentClass, loggedInUser);

        if (!acl.canWrite()) {
            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Access Denied");
            return (new AJAXResponseView(request, response));
        }
        boolean isHeadRevision = false;
        if (document.getRevisionId().equalsIgnoreCase(revisionId)) {
            isHeadRevision = true;
        }
        if (!isHeadRevision) {
            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Access Denied");
            aclManager = null;
            return (new AJAXResponseView(request, response));
        }
        //local variables
        String indexName = "", indexValue = "";
        String expiryDate = request.getParameter("txtExpiryDate") != null
                ? request.getParameter("txtExpiryDate")
                : "";
        Hashtable<String, String> indexRecord = new Hashtable<String, String>();

        for (IndexDefinition indexDefinition : documentClass.getIndexDefinitions()) {
            indexName = indexDefinition.getIndexColumnName();
            indexValue = request.getParameter(indexName);
            if (indexValue != null) {
                String errorMessage = "";
                if (indexDefinition.isMandatory()) {
                    if (indexValue.trim().length() <= 0) {
                        errorMessage = "Invalid input for " + indexDefinition.getIndexDisplayName();
                        request.setAttribute(HTTPConstants.REQUEST_ERROR, errorMessage);
                        return (new AJAXResponseView(request, response));
                    }
                }
                if (IndexDefinition.INDEXTYPE_NUMBER.equalsIgnoreCase(indexDefinition.getIndexType())) {
                    if (indexValue.trim().length() > 0) {
                        if (!GenericValidator.matchRegexp(indexValue, HTTPConstants.NUMERIC_REGEXP)) {
                            errorMessage = "Invalid input for " + indexDefinition.getIndexDisplayName();
                            request.setAttribute(HTTPConstants.REQUEST_ERROR, errorMessage);
                            return (new AJAXResponseView(request, response));
                        }
                    }
                } else if (IndexDefinition.INDEXTYPE_DATE.equalsIgnoreCase(indexDefinition.getIndexType())) {
                    if (indexValue.trim().length() > 0) {
                        if (!GenericValidator.isDate(indexValue, "yyyy-MM-dd", true)) {
                            errorMessage = "Invalid input for " + indexDefinition.getIndexDisplayName();
                            request.setAttribute(HTTPConstants.REQUEST_ERROR, errorMessage);
                            return (new AJAXResponseView(request, response));
                        }
                    }
                }
                if (indexValue.trim().length() > indexDefinition.getIndexMaxLength()) { //code for checking maximum length of index field
                    errorMessage = "Document index length exceeded " + "Index Name : "
                            + indexDefinition.getIndexDisplayName() + " [ " + "Index Length : "
                            + indexDefinition.getIndexMaxLength() + " , " + "Actual Length : "
                            + indexValue.length() + " ]";

                    request.setAttribute(HTTPConstants.REQUEST_ERROR, errorMessage);
                    return (new AJAXResponseView(request, response));
                }
            } else {
                indexValue = "";
            }
            indexRecord.put(indexName, indexValue);
        }

        IndexRecordManager.getInstance().updateIndexRecord(documentClass, documentId, revisionId, indexRecord);
        //Update document details like access count last modified etc

        Timestamp modified = new Timestamp(Calendar.getInstance().getTime().getTime());
        document.setStatus(Hit.STATUS_AVAILABLE);
        document.setModified(modified);
        document.setLastAccessed(modified);
        document.setAccessCount(document.getAccessCount() + 1);
        document.setModifiedBy(loggedInUser.getUserName());

        if (expiryDate.trim().length() > 0) {
            Timestamp expiry = new Timestamp(StringHelper.getDate(expiryDate).getTime());
            document.setExpiry(expiry);
        } else {
            document.setExpiry(null);
        }

        DocumentDAO.getInstance().updateDocument(document);

        //Log the entry to audit logs 
        String userName = loggedInUser.getUserName();
        AuditLogManager.log(new AuditLogRecord(documentId, AuditLogRecord.OBJECT_DOCUMENT,
                AuditLogRecord.ACTION_EDITED, userName, request.getRemoteAddr(), AuditLogRecord.LEVEL_INFO,
                "Revision No :" + revisionId));

        request.setAttribute(HTTPConstants.REQUEST_MESSAGE, "Indexes updated successfully");

    } catch (Exception e) {
        e.printStackTrace();
    }
    return (new AJAXResponseView(request, response));
}

From source file:jp.co.ctc_g.jse.core.util.web.beans.DateEditor.java

/**
 * {@inheritDoc}//from w w w.jav  a2s . c o  m
 */
@Override
public void setAsText(String text) {

    if (allowEmpty && Strings.isEmpty(text)) {
        setValue(null);
    } else if (GenericValidator.isDate(text, pattern, strict)) {
        try {
            setValue(this.dateFormat.parse(text));
        } catch (ParseException e) {
            throw new PropertyEditingException(CODE,
                    Strings.substitute(message, Maps.hash("pattern", pattern)));
        }
    } else {
        throw new PropertyEditingException(CODE, Strings.substitute(message, Maps.hash("pattern", pattern)));
    }
}

From source file:ching.icecreaming.action.ViewAction.java

public void validate() {
    int int1 = 0, int2 = 0;
    DataModel2 dataObject2 = null;//w  ww .j  a v a  2 s . c o  m
    if (StringUtils.equals(wsType, "reportUnit") && StringUtils.equals(button1, getText("Print"))) {
        if (listObject2 != null) {
            int2 = listObject2.size();
            for (int1 = 0; int1 < int2; int1++) {
                dataObject2 = (DataModel2) listObject2.get(int1);
                switch (dataObject2.getType1()) {
                case "singleValueDateTime":
                    if (!GenericValidator.isDate(dataObject2.getValue1(), "yyyy-MM-dd HH:mm", false)) {
                        addFieldError(String.format("listObject2[%d].value1", int1), getText("Error"));
                    }
                    break;
                case "singleValueDate":
                    if (!GenericValidator.isDate(dataObject2.getValue1(), "yyyy-MM-dd", false)) {
                        addFieldError(String.format("listObject2[%d].value1", int1), getText("Error"));
                    }
                    break;
                case "singleValueNumber":
                    if (!NumberUtils.isNumber(dataObject2.getValue1())) {
                        addFieldError(String.format("listObject2[%d].value1", int1), getText("Error"));
                    }
                    break;
                default:
                    break;
                }
            }
        }
    }
}

From source file:kreidos.diamond.web.action.console.NewDocumentAction.java

@SuppressWarnings("rawtypes")
public WebView execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
    HttpSession session = request.getSession();
    User loggedInUser = (User) session.getAttribute(HTTPConstants.SESSION_KRYSTAL);
    String classId = request.getParameter("classid") != null ? request.getParameter("classid") : "0";

    if (request.getMethod().equalsIgnoreCase("POST")) {
        try {// w w  w  . j a v  a2s. c  om
            String userName = loggedInUser.getUserName();
            String tempFilePath = System.getProperty("java.io.tmpdir");

            if (!(tempFilePath.endsWith("/") || tempFilePath.endsWith("\\"))) {
                tempFilePath += System.getProperty("file.separator");
            }

            //variables
            String fileName = "", comments = "";
            File file = null;
            // Create a factory for disk-based file items
            FileItemFactory factory = new DiskFileItemFactory();
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setHeaderEncoding(HTTPConstants.CHARACTER_ENCODING);

            //Create a file upload progress listener
            FileUploadProgressListener listener = new FileUploadProgressListener();
            upload.setProgressListener(listener);
            //put the listener in session
            session.setAttribute("LISTENER", listener);
            session.setAttribute("UPLOAD_ERROR", null);
            session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(0));

            DocumentClass documentClass = null;

            Hashtable<String, String> indexRecord = new Hashtable<String, String>();
            String name = "";
            String value = "";

            List listItems = upload.parseRequest((HttpServletRequest) request);

            Iterator iter = listItems.iterator();
            FileItem fileItem = null;
            while (iter.hasNext()) {
                fileItem = (FileItem) iter.next();
                if (fileItem.isFormField()) {
                    name = fileItem.getFieldName();
                    value = fileItem.getString(HTTPConstants.CHARACTER_ENCODING);
                    if (name.equals("classid")) {
                        classId = value;
                    }
                    if (name.equals("txtNote")) {
                        comments = value;
                    }
                } else {
                    try {
                        fileName = fileItem.getName();
                        file = new File(fileName);
                        fileName = file.getName();
                        file = new File(tempFilePath + fileName);
                        fileItem.write(file);
                    } catch (Exception ex) {
                        session.setAttribute("UPLOAD_ERROR", ex.getLocalizedMessage());
                        return null;
                    }
                }
            } //if

            if (file.length() <= 0) { //code for checking minimum size of file
                session.setAttribute("UPLOAD_ERROR", "Zero length document");
                return null;
            }
            documentClass = DocumentClassDAO.getInstance().readDocumentClassById(Integer.parseInt(classId));
            if (documentClass == null) {
                session.setAttribute("UPLOAD_ERROR", "Invalid document class");
                return null;
            }
            AccessControlManager aclManager = new AccessControlManager();
            ACL acl = aclManager.getACL(documentClass, loggedInUser);

            if (!acl.canCreate()) {
                session.setAttribute("UPLOAD_ERROR", "Access Denied");
                return null;
            }

            String indexValue = "";
            String indexName = "";
            session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(50));

            for (IndexDefinition indexDefinition : documentClass.getIndexDefinitions()) {
                indexName = indexDefinition.getIndexColumnName();
                Iterator iter1 = listItems.iterator();
                while (iter1.hasNext()) {
                    FileItem item1 = (FileItem) iter1.next();
                    if (item1.isFormField()) {
                        name = item1.getFieldName();
                        value = item1.getString(HTTPConstants.CHARACTER_ENCODING);
                        if (name.equals(indexName)) {
                            indexValue = value;
                            String errorMessage = "";
                            if (indexValue != null) {
                                if (indexDefinition.isMandatory()) {
                                    if (indexValue.trim().length() <= 0) {
                                        errorMessage = "Invalid input for "
                                                + indexDefinition.getIndexDisplayName();
                                        session.setAttribute("UPLOAD_ERROR", errorMessage);
                                        return null;
                                    }
                                }
                                if (IndexDefinition.INDEXTYPE_NUMBER
                                        .equalsIgnoreCase(indexDefinition.getIndexType())) {
                                    if (indexValue.trim().length() > 0) {
                                        if (!GenericValidator.matchRegexp(indexValue,
                                                HTTPConstants.NUMERIC_REGEXP)) {
                                            errorMessage = "Invalid input for "
                                                    + indexDefinition.getIndexDisplayName();
                                            session.setAttribute("UPLOAD_ERROR", errorMessage);
                                            return null;
                                        }
                                    }
                                } else if (IndexDefinition.INDEXTYPE_DATE
                                        .equalsIgnoreCase(indexDefinition.getIndexType())) {
                                    if (indexValue.trim().length() > 0) {
                                        if (!GenericValidator.isDate(indexValue, "yyyy-MM-dd", true)) {
                                            errorMessage = "Invalid input for "
                                                    + indexDefinition.getIndexDisplayName();
                                            session.setAttribute("UPLOAD_ERROR", errorMessage);
                                            return null;
                                        }
                                    }
                                }
                                if (indexValue.trim().length() > indexDefinition.getIndexMaxLength()) { //code for checking index field length
                                    errorMessage = "Document index size exceeded for " + "Index Name : "
                                            + indexDefinition.getIndexDisplayName() + " [ " + "Index Length : "
                                            + indexDefinition.getIndexMaxLength() + " , " + "Actual Length : "
                                            + indexValue.length() + " ]";
                                    session.setAttribute("UPLOAD_ERROR", errorMessage);
                                    return null;
                                }
                            }
                            indexRecord.put(indexName, indexValue);
                        }
                    }
                } //while iter
            } //while indexCfgList
            session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(70));

            DocumentRevision documentRevision = new DocumentRevision();
            documentRevision.setClassId(documentClass.getClassId());
            documentRevision.setDocumentId(0);
            documentRevision.setRevisionId("1.0");
            documentRevision.setDocumentFile(file);
            documentRevision.setUserName(loggedInUser.getUserName());
            documentRevision.setIndexRecord(indexRecord);
            documentRevision.setComments(comments);

            DocumentManager documentManager = new DocumentManager();
            documentManager.storeDocument(documentRevision, documentClass);

            //Log the entry to audit logs 
            AuditLogManager.log(new AuditLogRecord(documentRevision.getDocumentId(),
                    AuditLogRecord.OBJECT_DOCUMENT, AuditLogRecord.ACTION_CREATED, userName,
                    request.getRemoteAddr(), AuditLogRecord.LEVEL_INFO, "", "Document created"));

            session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(100));
        } catch (Exception e) {
            e.printStackTrace(System.out);
        }
        return null;
    } else {
        try {
            ArrayList<DocumentClass> availableDocumentClasses = DocumentClassDAO.getInstance()
                    .readDocumentClasses(" ACTIVE = 'Y'");
            ArrayList<DocumentClass> documentClasses = new ArrayList<DocumentClass>();
            AccessControlManager aclManager = new AccessControlManager();
            for (DocumentClass documentClass : availableDocumentClasses) {
                ACL acl = aclManager.getACL(documentClass, loggedInUser);
                if (acl.canCreate()) {
                    documentClasses.add(documentClass);
                }
            }
            int documentClassId = 0;
            try {
                documentClassId = Integer.parseInt(classId);
            } catch (Exception ex) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid input");
                return (new NewDocumentView(request, response));
            }
            if (documentClassId > 0) {
                DocumentClass selectedDocumentClass = DocumentClassDAO.getInstance()
                        .readDocumentClassById(documentClassId);
                request.setAttribute("DOCUMENTCLASS", selectedDocumentClass);
            }
            request.setAttribute("CLASSID", documentClassId);
            request.setAttribute("CLASSLIST", documentClasses);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    return (new NewDocumentView(request, response));
}

From source file:com.jd.survey.web.security.LoginController.java

@SuppressWarnings("unchecked")
@RequestMapping(method = RequestMethod.POST, value = "/", params = "fpass", produces = "text/html")
public String forgotPasswordPost(@RequestParam(value = "login", required = true) String login,
        @RequestParam(value = "dob", required = true) String dob,
        @RequestParam(value = "_proceed", required = false) String proceed, Model uiModel,
        HttpServletRequest httpServletRequest) {
    try {/*from   w  w w  .  jav a2 s.c  o  m*/
        if (proceed != null) {
            String resetPasswordLink;
            String dateFormat = messageSource.getMessage(DATE_FORMAT, null, LocaleContextHolder.getLocale());

            //Validate date and login entries (sanitize) 
            if (login == null || login.isEmpty() || login.length() > 100 || dob == null || dob.isEmpty()
                    || !GenericValidator.isDate(dob, dateFormat, true)) {
                uiModel.addAttribute("status", "I");
                return "public/fpass";
            }

            //Check if provided DOB and login match
            if (!userService.user_validateDateofBirthAndLogin(login,
                    DateValidator.getInstance().validate(dob))) {
                uiModel.addAttribute("status", "I");
                return "public/fpass";
            }

            User user = userService.user_findByLogin(login);
            if (httpServletRequest.getRequestURI().contains("external")) {
                //resetPasswordLink =messageSource.getMessage(EXTERNAL_SITE_BASE_URL, null, LocaleContextHolder.getLocale());
                resetPasswordLink = externalBaseUrl;
            } else {
                //resetPasswordLink =messageSource.getMessage(INTERNAL_SITE_BASE_URL, null, LocaleContextHolder.getLocale());
                resetPasswordLink = internalBaseUrl;
            }
            if (resetPasswordLink.endsWith("/")) {
                resetPasswordLink = resetPasswordLink + "public/rpass?key=";
            } else {
                resetPasswordLink = resetPasswordLink + "/public/rpass?key=";
            }

            StringWriter sw = new StringWriter();
            Map model = new HashMap();
            model.put(
                    messageSource.getMessage(RESET_PASSWORD_LINK_PARAMETER_NAME, null,
                            LocaleContextHolder.getLocale()).replace("${", "").replace("}", ""),
                    "<a href='" + resetPasswordLink
                            + userService.user_prepareForgotPasswordMessage(user.getId()) + "'>"
                            + messageSource.getMessage(RESET_PASSWORD_LINK_LABEL, null,
                                    LocaleContextHolder.getLocale())
                            + "</a>");
            VelocityContext velocityContext = new VelocityContext(model);
            Velocity.evaluate(velocityContext, sw, "velocity-log", surveySettingsService
                    .velocityTemplate_findById(FORGOT_PASSWORD_VELOCITY_EMAIL_TEMPLATE_ID).getDefinition());

            mailService.sendEmail(user.getEmail(), messageSource.getMessage(FORGOT_PASSWORD_EMAIL_TITLE, null,
                    LocaleContextHolder.getLocale()), sw.toString());
            uiModel.addAttribute("status", "S");
            return "public/fpass";
        } else { //cancel button
            return "public/login";
        }
    } catch (Exception e) {
        log.error(e.getMessage(), e);
        throw (new RuntimeException(e));
    }
}

From source file:com.primeleaf.krystal.web.action.console.CheckInDocumentAction.java

@SuppressWarnings({ "unchecked", "rawtypes" })
public WebView execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
    HttpSession session = request.getSession();
    User loggedInUser = (User) session.getAttribute(HTTPConstants.SESSION_KRYSTAL);
    try {/*from  w ww . ja  v  a2  s  .  c om*/
        if ("POST".equalsIgnoreCase(request.getMethod())) {
            String errorMessage;
            String tempFilePath = System.getProperty("java.io.tmpdir");

            if (!(tempFilePath.endsWith("/") || tempFilePath.endsWith("\\"))) {
                tempFilePath += System.getProperty("file.separator");
            }
            tempFilePath += loggedInUser.getUserName() + "_" + session.getId();

            String revisionId = "", comments = "", fileName = "", ext = "", version = "";
            int documentId = 0;
            // Create a factory for disk-based file items
            FileItemFactory factory = new DiskFileItemFactory();
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            List items = upload.parseRequest((HttpServletRequest) request);
            upload.setHeaderEncoding(HTTPConstants.CHARACTER_ENCODING);
            //Create a file upload progress listener

            Iterator iter = items.iterator();
            FileItem item = null;
            File file = null;
            while (iter.hasNext()) {
                item = (FileItem) iter.next();
                if (item.isFormField()) {
                    String name = item.getFieldName();
                    String value = item.getString(HTTPConstants.CHARACTER_ENCODING);
                    if (name.equals("documentid")) {
                        try {
                            documentId = Integer.parseInt(value);
                        } catch (Exception ex) {
                            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid input");
                            return (new CheckInDocumentView(request, response));
                        }
                    } else if (name.equals("revisionid")) {
                        revisionId = value;
                    } else if (name.equals("txtNote")) {
                        comments = value;
                    } else if ("version".equalsIgnoreCase(name)) {
                        version = value;
                    }
                } else {
                    fileName = item.getName();
                    ext = fileName.substring(fileName.lastIndexOf(".") + 1).toUpperCase();
                    file = new File(tempFilePath + "." + ext);
                    item.write(file);
                }
            }
            iter = null;

            Document document = DocumentDAO.getInstance().readDocumentById(documentId);
            if (document == null) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid document");
                return (new CheckInDocumentView(request, response));
            }
            if (document.getStatus().equalsIgnoreCase(Hit.STATUS_AVAILABLE)) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid check-in");
                return (new CheckInDocumentView(request, response));
            }
            revisionId = document.getRevisionId();
            DocumentClass documentClass = DocumentClassDAO.getInstance()
                    .readDocumentClassById(document.getClassId());
            AccessControlManager aclManager = new AccessControlManager();
            ACL acl = aclManager.getACL(documentClass, loggedInUser);
            if (!acl.canCheckin()) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Access Denied");
                return (new CheckInDocumentView(request, response));
            }

            if (file.length() <= 0) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Zero length document");
                return (new CheckInDocumentView(request, response));
            }
            if (file.length() > documentClass.getMaximumFileSize()) { //code for checking maximum size of document in a class
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Document size exceeded");
                return (new CheckInDocumentView(request, response));
            }

            String indexValue = "";
            String indexName = "";

            Hashtable indexRecord = new Hashtable();
            for (IndexDefinition indexDefinition : documentClass.getIndexDefinitions()) {
                indexName = indexDefinition.getIndexColumnName();
                Iterator itemsIterator = items.iterator();
                while (itemsIterator.hasNext()) {
                    FileItem fileItem = (FileItem) itemsIterator.next();
                    if (fileItem.isFormField()) {
                        String name = fileItem.getFieldName();
                        String value = fileItem.getString(HTTPConstants.CHARACTER_ENCODING);
                        if (name.equals(indexName)) {
                            indexValue = value;
                            if (indexValue != null) {
                                if (indexDefinition.isMandatory()) {
                                    if (indexValue.trim().length() <= 0) {
                                        errorMessage = "Invalid input for "
                                                + indexDefinition.getIndexDisplayName();
                                        request.setAttribute(HTTPConstants.REQUEST_ERROR, errorMessage);
                                        return (new CheckInDocumentView(request, response));
                                    }
                                }
                                if (IndexDefinition.INDEXTYPE_NUMBER
                                        .equalsIgnoreCase(indexDefinition.getIndexType())) {
                                    if (indexValue.trim().length() > 0) {
                                        if (!GenericValidator.matchRegexp(indexValue,
                                                HTTPConstants.NUMERIC_REGEXP)) {
                                            errorMessage = "Invalid input for "
                                                    + indexDefinition.getIndexDisplayName();
                                            request.setAttribute(HTTPConstants.REQUEST_ERROR, errorMessage);
                                            return (new CheckInDocumentView(request, response));
                                        }
                                    }
                                } else if (IndexDefinition.INDEXTYPE_DATE
                                        .equalsIgnoreCase(indexDefinition.getIndexType())) {
                                    if (indexValue.trim().length() > 0) {
                                        if (!GenericValidator.isDate(indexValue, "yyyy-MM-dd", true)) {
                                            errorMessage = "Invalid input for "
                                                    + indexDefinition.getIndexDisplayName();
                                            request.setAttribute(HTTPConstants.REQUEST_ERROR, errorMessage);
                                            return (new CheckInDocumentView(request, response));
                                        }
                                    }
                                }

                                if (indexValue.trim().length() > indexDefinition.getIndexMaxLength()) { //code for checking maximum length of index field
                                    errorMessage = "Document index length exceeded.  Index Name :" +

                                            indexDefinition.getIndexDisplayName() + " [ " + "Index Length : "
                                            + indexDefinition.getIndexMaxLength() + " , " + "Actual Length  : "
                                            + indexValue.length() + " ]";
                                    request.setAttribute(HTTPConstants.REQUEST_ERROR, errorMessage);
                                    return (new CheckInDocumentView(request, response));
                                }
                            }
                            indexRecord.put(indexName, indexValue);
                        }
                    }
                    fileItem = null;
                } // while iter
                itemsIterator = null;
            } // while indexDefinitionItr

            CheckedOutDocument checkedOutDocument = new CheckedOutDocument();
            checkedOutDocument.setDocumentId(documentId);
            // Added by Viral Visaria. For the Version Control minor and major.
            // In minor revision increment by 0.1. (No Changes required for the minor revision its handled in the core logic) 
            // In major revision increment by 1.0  (Below chages are incremented by 0.9 and rest 0.1 will be added in the core logic. (0.9 + 0.1 = 1.0)
            double rev = Double.parseDouble(revisionId);
            if ("major".equals(version)) {
                rev = Math.floor(rev);
                rev = rev + 0.9;
                revisionId = String.valueOf(rev);
            }
            checkedOutDocument.setRevisionId(revisionId);
            checkedOutDocument.setUserName(loggedInUser.getUserName());
            RevisionManager revisionManager = new RevisionManager();
            revisionManager.checkIn(checkedOutDocument, documentClass, indexRecord, file, comments, ext,
                    loggedInUser.getUserName());

            //revision id incremented by 0.1 for making entry in audit log 
            rev += 0.1;
            revisionId = String.valueOf(rev);
            //add to audit log 
            AuditLogManager.log(new AuditLogRecord(documentId, AuditLogRecord.OBJECT_DOCUMENT,
                    AuditLogRecord.ACTION_CHECKIN, loggedInUser.getUserName(), request.getRemoteAddr(),
                    AuditLogRecord.LEVEL_INFO, "Document ID :  " + documentId + " Revision ID :" + revisionId,
                    "Checked In"));
            request.setAttribute(HTTPConstants.REQUEST_MESSAGE, "Document checked in successfully");
            return (new CheckInDocumentView(request, response));
        }
        int documentId = 0;
        try {
            documentId = Integer.parseInt(
                    request.getParameter("documentid") != null ? request.getParameter("documentid") : "0");
        } catch (Exception e) {
            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid input");
            return (new CheckInDocumentView(request, response));
        }
        Document document = DocumentDAO.getInstance().readDocumentById(documentId);
        if (document == null) {
            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid document");
            return (new CheckInDocumentView(request, response));
        }
        if (!Hit.STATUS_LOCKED.equalsIgnoreCase(document.getStatus())) {
            request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid checkin");
            return (new CheckInDocumentView(request, response));
        }
        DocumentClass documentClass = DocumentClassDAO.getInstance()
                .readDocumentClassById(document.getClassId());
        LinkedHashMap<String, String> documentIndexes = IndexRecordManager.getInstance()
                .readIndexRecord(documentClass, documentId, document.getRevisionId());

        request.setAttribute("DOCUMENTCLASS", documentClass);
        request.setAttribute("DOCUMENT", document);
        request.setAttribute("DOCUMENTINDEXES", documentIndexes);

    } catch (Exception e) {
        e.printStackTrace();
    }
    return (new CheckInDocumentView(request, response));
}

From source file:com.primeleaf.krystal.web.action.console.NewDocumentAction.java

@SuppressWarnings("rawtypes")
public WebView execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
    HttpSession session = request.getSession();
    User loggedInUser = (User) session.getAttribute(HTTPConstants.SESSION_KRYSTAL);
    String classId = request.getParameter("classid") != null ? request.getParameter("classid") : "0";

    if (request.getMethod().equalsIgnoreCase("POST")) {
        try {/*from w  ww  . j ava  2s.  co m*/
            String userName = loggedInUser.getUserName();
            String sessionid = (String) session.getId();

            String tempFilePath = System.getProperty("java.io.tmpdir");

            if (!(tempFilePath.endsWith("/") || tempFilePath.endsWith("\\"))) {
                tempFilePath += System.getProperty("file.separator");
            }
            tempFilePath += userName + "_" + sessionid;

            //variables
            String fileName = "", ext = "", comments = "";
            File file = null;
            // Create a factory for disk-based file items
            FileItemFactory factory = new DiskFileItemFactory();
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setHeaderEncoding(HTTPConstants.CHARACTER_ENCODING);

            //Create a file upload progress listener
            FileUploadProgressListener listener = new FileUploadProgressListener();
            upload.setProgressListener(listener);
            //put the listener in session
            session.setAttribute("LISTENER", listener);
            session.setAttribute("UPLOAD_ERROR", null);
            session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(0));

            DocumentClass documentClass = null;

            Hashtable<String, String> indexRecord = new Hashtable<String, String>();
            String name = "";
            String value = "";

            List listItems = upload.parseRequest((HttpServletRequest) request);

            Iterator iter = listItems.iterator();
            FileItem fileItem = null;
            while (iter.hasNext()) {
                fileItem = (FileItem) iter.next();
                if (fileItem.isFormField()) {
                    name = fileItem.getFieldName();
                    value = fileItem.getString(HTTPConstants.CHARACTER_ENCODING);
                    if (name.equals("classid")) {
                        classId = value;
                    }
                    if (name.equals("txtNote")) {
                        comments = value;
                    }
                } else {
                    try {
                        fileName = fileItem.getName();
                        file = new File(fileName);
                        fileName = file.getName();
                        ext = fileName.substring(fileName.lastIndexOf(".") + 1).toUpperCase();
                        file = new File(tempFilePath + "." + ext);
                        fileItem.write(file);
                    } catch (Exception ex) {
                        session.setAttribute("UPLOAD_ERROR", ex.getLocalizedMessage());
                        return null;
                    }
                }
            } //if

            if (file.length() <= 0) { //code for checking minimum size of file
                session.setAttribute("UPLOAD_ERROR", "Zero length document");
                return null;
            }
            documentClass = DocumentClassDAO.getInstance().readDocumentClassById(Integer.parseInt(classId));
            if (documentClass == null) {
                session.setAttribute("UPLOAD_ERROR", "Invalid document class");
                return null;
            }
            AccessControlManager aclManager = new AccessControlManager();
            ACL acl = aclManager.getACL(documentClass, loggedInUser);

            if (!acl.canCreate()) {
                session.setAttribute("UPLOAD_ERROR", "Access Denied");
                return null;
            }

            long usedStorage = DocumentDAO.getInstance().documentSize();
            long availableStorage = ServerConstants.MAX_STORAGE - usedStorage;

            if (file.length() > availableStorage) {
                session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(0));
                session.setAttribute("UPLOAD_ERROR", "Document upload failed. Storage limit exceeded.");
                return null;
            }
            String indexValue = "";
            String indexName = "";
            session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(50));

            for (IndexDefinition indexDefinition : documentClass.getIndexDefinitions()) {
                indexName = indexDefinition.getIndexColumnName();
                Iterator iter1 = listItems.iterator();
                while (iter1.hasNext()) {
                    FileItem item1 = (FileItem) iter1.next();
                    if (item1.isFormField()) {
                        name = item1.getFieldName();
                        value = item1.getString(HTTPConstants.CHARACTER_ENCODING);
                        if (name.equals(indexName)) {
                            indexValue = value;
                            String errorMessage = "";
                            if (indexValue != null) {
                                if (indexDefinition.isMandatory()) {
                                    if (indexValue.trim().length() <= 0) {
                                        errorMessage = "Invalid input for "
                                                + indexDefinition.getIndexDisplayName();
                                        session.setAttribute("UPLOAD_ERROR", errorMessage);
                                        return null;
                                    }
                                }
                                if (IndexDefinition.INDEXTYPE_NUMBER
                                        .equalsIgnoreCase(indexDefinition.getIndexType())) {
                                    if (indexValue.trim().length() > 0) {
                                        if (!GenericValidator.matchRegexp(indexValue,
                                                HTTPConstants.NUMERIC_REGEXP)) {
                                            errorMessage = "Invalid input for "
                                                    + indexDefinition.getIndexDisplayName();
                                            session.setAttribute("UPLOAD_ERROR", errorMessage);
                                            return null;
                                        }
                                    }
                                } else if (IndexDefinition.INDEXTYPE_DATE
                                        .equalsIgnoreCase(indexDefinition.getIndexType())) {
                                    if (indexValue.trim().length() > 0) {
                                        if (!GenericValidator.isDate(indexValue, "yyyy-MM-dd", true)) {
                                            errorMessage = "Invalid input for "
                                                    + indexDefinition.getIndexDisplayName();
                                            session.setAttribute("UPLOAD_ERROR", errorMessage);
                                            return null;
                                        }
                                    }
                                }
                                if (indexValue.trim().length() > indexDefinition.getIndexMaxLength()) { //code for checking index field length
                                    errorMessage = "Document index size exceeded for " + "Index Name : "
                                            + indexDefinition.getIndexDisplayName() + " [ " + "Index Length : "
                                            + indexDefinition.getIndexMaxLength() + " , " + "Actual Length : "
                                            + indexValue.length() + " ]";
                                    session.setAttribute("UPLOAD_ERROR", errorMessage);
                                    return null;
                                }
                            }
                            indexRecord.put(indexName, indexValue);
                        }
                    }
                } //while iter
            } //while indexCfgList
            session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(70));

            DocumentRevision documentRevision = new DocumentRevision();
            documentRevision.setClassId(documentClass.getClassId());
            documentRevision.setDocumentId(0);
            documentRevision.setRevisionId("1.0");
            documentRevision.setDocumentFile(file);
            documentRevision.setUserName(loggedInUser.getUserName());
            documentRevision.setIndexRecord(indexRecord);
            documentRevision.setComments(comments);

            DocumentManager documentManager = new DocumentManager();
            documentManager.storeDocument(documentRevision, documentClass);

            //Log the entry to audit logs 
            AuditLogManager.log(new AuditLogRecord(documentRevision.getDocumentId(),
                    AuditLogRecord.OBJECT_DOCUMENT, AuditLogRecord.ACTION_CREATED, userName,
                    request.getRemoteAddr(), AuditLogRecord.LEVEL_INFO, "", "Document created"));

            session.setAttribute("UPLOAD_PERCENT_COMPLETE", new Long(100));
        } catch (Exception e) {
            e.printStackTrace(System.out);
        }
        return null;
    } else {
        try {
            ArrayList<DocumentClass> availableDocumentClasses = DocumentClassDAO.getInstance()
                    .readDocumentClasses(" ACTIVE = 'Y'");
            ArrayList<DocumentClass> documentClasses = new ArrayList<DocumentClass>();
            AccessControlManager aclManager = new AccessControlManager();
            for (DocumentClass documentClass : availableDocumentClasses) {
                ACL acl = aclManager.getACL(documentClass, loggedInUser);
                if (acl.canCreate()) {
                    documentClasses.add(documentClass);
                }
            }
            int documentClassId = 0;
            try {
                documentClassId = Integer.parseInt(classId);
            } catch (Exception ex) {
                request.setAttribute(HTTPConstants.REQUEST_ERROR, "Invalid input");
                return (new NewDocumentView(request, response));
            }
            if (documentClassId > 0) {
                DocumentClass selectedDocumentClass = DocumentClassDAO.getInstance()
                        .readDocumentClassById(documentClassId);
                request.setAttribute("DOCUMENTCLASS", selectedDocumentClass);
            }
            request.setAttribute("CLASSID", documentClassId);
            request.setAttribute("CLASSLIST", documentClasses);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    return (new NewDocumentView(request, response));
}