List of usage examples for org.apache.commons.text StringEscapeUtils escapeHtml4
public static final String escapeHtml4(final String input)
Escapes the characters in a String using HTML entities.
For example:
"bread" & "butter"
"bread" & "butter"
.
From source file:org.openestate.tool.helloworld.HelloWorldFrameSidebarExtension.java
private JPopupMenu createActionMenu(final DbHelloWorldObject object) { // create a popup menu for the Hello World sidebar final JPopupMenu popup = new JPopupMenu(); // add action into the popup menu for sidebar refresh popup.add(new JMenuItem(new HelloWorldPlugin.SidebarRefreshAction())); // add action into the popup menu for a new object popup.add(new JMenuItem(new HelloWorldPlugin.ObjectFormAction())); // no object is selected in the sidebar //noinspection StatementWithEmptyBody if (object == null) { }//www .ja v a2 s . c o m // add further actions for the selected sidebar entry else { String title = StringUtils.abbreviate(StringUtils.trimToEmpty(object.name), 30); popup.add( ImmoToolUtils.createMenuSeparator("<html>" + StringEscapeUtils.escapeHtml4(title) + "</html>")); // add action into the popup menu for editing the selected object popup.add(new HelloWorldPlugin.ObjectFormAction(object.id)); // add action into the popup menu for removing the selected object popup.add(new HelloWorldPlugin.ObjectRemoveAction(object.id)); } // return the created popup menu return popup; }
From source file:org.sakaiproject.assignment.impl.AssignmentServiceImpl.java
private void zipSubmissions(String assignmentReference, String assignmentTitle, Assignment.GradeType gradeType, Assignment.SubmissionType typeOfSubmission, Iterator submissions, OutputStream outputStream, StringBuilder exceptionMessage, boolean withStudentSubmissionText, boolean withStudentSubmissionAttachment, boolean withGradeFile, boolean withFeedbackText, boolean withFeedbackComment, boolean withFeedbackAttachment, boolean withoutFolders, String gradeFileFormat, boolean includeNotSubmitted, String siteId) { ZipOutputStream out = null;//from ww w.ja va 2s . c o m boolean isAdditionalNotesEnabled = false; Site st = null; try { st = siteService.getSite(siteId); isAdditionalNotesEnabled = candidateDetailProvider != null && candidateDetailProvider.isAdditionalNotesEnabled(st); } catch (IdUnusedException e) { log.warn("Could not find site {} - isAdditionalNotesEnabled set to false", siteId); } try { out = new ZipOutputStream(outputStream); // create the folder structure - named after the assignment's title final String root = escapeInvalidCharsEntry(Validator.escapeZipEntry(assignmentTitle)) + Entity.SEPARATOR; final SpreadsheetExporter.Type type = SpreadsheetExporter.Type.valueOf(gradeFileFormat.toUpperCase()); final SpreadsheetExporter sheet = SpreadsheetExporter.getInstance(type, assignmentTitle, gradeType.toString(), getCsvSeparator()); String submittedText = ""; if (!submissions.hasNext()) { exceptionMessage.append("There is no submission yet. "); } if (isAdditionalNotesEnabled) { sheet.addHeader(resourceLoader.getString("grades.id"), resourceLoader.getString("grades.eid"), resourceLoader.getString("grades.lastname"), resourceLoader.getString("grades.firstname"), resourceLoader.getString("grades.grade"), resourceLoader.getString("grades.submissionTime"), resourceLoader.getString("grades.late"), resourceLoader.getString("gen.notes")); } else { sheet.addHeader(resourceLoader.getString("grades.id"), resourceLoader.getString("grades.eid"), resourceLoader.getString("grades.lastname"), resourceLoader.getString("grades.firstname"), resourceLoader.getString("grades.grade"), resourceLoader.getString("grades.submissionTime"), resourceLoader.getString("grades.late")); } // allow add assignment members final List<User> allowAddSubmissionUsers = allowAddSubmissionUsers(assignmentReference); // Create the ZIP file String caughtException = null; String caughtStackTrace = null; final StringBuilder submittersAdditionalNotesHtml = new StringBuilder(); while (submissions.hasNext()) { final AssignmentSubmission s = (AssignmentSubmission) submissions.next(); boolean isAnon = assignmentUsesAnonymousGrading(s.getAssignment()); //SAK-29314 added a new value where it's by default submitted but is marked when the user submits if ((s.getSubmitted() && s.getUserSubmission()) || includeNotSubmitted) { // get the submitter who submitted the submission see if the user is still in site final Optional<AssignmentSubmissionSubmitter> assignmentSubmitter = s.getSubmitters().stream() .findAny(); try { User u = null; if (assignmentSubmitter.isPresent()) { u = userDirectoryService.getUser(assignmentSubmitter.get().getSubmitter()); } if (allowAddSubmissionUsers.contains(u)) { String submittersName = root; final User[] submitters = s.getSubmitters().stream().map(p -> { try { return userDirectoryService.getUser(p.getSubmitter()); } catch (UserNotDefinedException e) { log.warn("User not found {}, {}", p.getSubmitter(), e.getMessage()); } return null; }).filter(Objects::nonNull).toArray(User[]::new); String submittersString = ""; for (int i = 0; i < submitters.length; i++) { if (i > 0) { submittersString = submittersString.concat("; "); } String fullName = submitters[i].getSortName(); // in case the user doesn't have first name or last name if (!fullName.contains(",")) { fullName = fullName.concat(","); } submittersString = submittersString.concat(fullName); // add the eid to the end of it to guarantee folder name uniqness // if user Eid contains non ascii characters, the user internal id will be used final String userEid = submitters[i].getEid(); final String candidateEid = escapeInvalidCharsEntry(userEid); if (candidateEid.equals(userEid)) { submittersString = submittersString + "(" + candidateEid + ")"; } else { submittersString = submittersString + "(" + submitters[i].getId() + ")"; } submittersString = escapeInvalidCharsEntry(submittersString); // Work out if submission is late. final String latenessStatus = whenSubmissionMade(s); log.debug("latenessStatus: " + latenessStatus); final String anonTitle = resourceLoader.getString("grading.anonymous.title"); final String fullAnonId = s.getId() + " " + anonTitle; String[] params = new String[7]; if (isAdditionalNotesEnabled && candidateDetailProvider != null) { final List<String> notes = candidateDetailProvider .getAdditionalNotes(submitters[i], st).orElse(new ArrayList<String>()); if (!notes.isEmpty()) { params = new String[notes.size() + 7]; System.arraycopy(notes.toArray(new String[notes.size()]), 0, params, 7, notes.size()); } } // SAK-17606 if (!isAnon) { log.debug("Zip user: " + submitters[i].toString()); params[0] = submitters[i].getDisplayId(); params[1] = submitters[i].getEid(); params[2] = submitters[i].getLastName(); params[3] = submitters[i].getFirstName(); params[4] = this.getGradeForSubmitter(s, submitters[i].getId()); if (s.getDateSubmitted() != null) { params[5] = s.getDateSubmitted().toString(); // TODO may need to be formatted } else { params[5] = ""; } params[6] = latenessStatus; } else { params[0] = fullAnonId; params[1] = fullAnonId; params[2] = anonTitle; params[3] = anonTitle; params[4] = this.getGradeForSubmitter(s, submitters[i].getId()); if (s.getDateSubmitted() != null) { params[5] = s.getDateSubmitted().toString(); // TODO may need to be formatted } else { params[5] = ""; } params[6] = latenessStatus; } sheet.addRow(params); } if (StringUtils.trimToNull(submittersString) != null) { submittersName = submittersName.concat(StringUtils.trimToNull(submittersString)); submittedText = s.getSubmittedText(); // SAK-17606 if (isAnon) { submittersString = s.getId() + " " + resourceLoader.getString("grading.anonymous.title"); submittersName = root + submittersString; } if (!withoutFolders) { submittersName = submittersName.concat("/"); } else { submittersName = submittersName.concat("_"); } // record submission timestamp if (!withoutFolders && s.getSubmitted() && s.getDateSubmitted() != null) { final String zipEntryName = submittersName + "timestamp.txt"; final String textEntryString = s.getDateSubmitted().toString(); createTextZipEntry(out, zipEntryName, textEntryString); } // create the folder structure - named after the submitter's name if (typeOfSubmission != Assignment.SubmissionType.ATTACHMENT_ONLY_ASSIGNMENT_SUBMISSION && typeOfSubmission != Assignment.SubmissionType.NON_ELECTRONIC_ASSIGNMENT_SUBMISSION) { // include student submission text if (withStudentSubmissionText) { // create the text file only when a text submission is allowed final StringBuilder submittersNameString = new StringBuilder( submittersName); //remove folder name if Download All is without user folders if (!withoutFolders) { submittersNameString.append(submittersString); } final String zipEntryName = submittersNameString .append("_submissionText" + AssignmentConstants.ZIP_SUBMITTED_TEXT_FILE_TYPE) .toString(); createTextZipEntry(out, zipEntryName, submittedText); } // include student submission feedback text if (withFeedbackText) { // create a feedbackText file into zip final String zipEntryName = submittersName + "feedbackText.html"; final String textEntryString = s.getFeedbackText(); createTextZipEntry(out, zipEntryName, textEntryString); } } if (typeOfSubmission != Assignment.SubmissionType.TEXT_ONLY_ASSIGNMENT_SUBMISSION && typeOfSubmission != Assignment.SubmissionType.NON_ELECTRONIC_ASSIGNMENT_SUBMISSION && withStudentSubmissionAttachment) { // include student submission attachment //remove "/" that creates a folder if Download All is without user folders String sSubAttachmentFolder = submittersName + resourceLoader.getString("stuviewsubm.submissatt");//jh + "/"; if (!withoutFolders) { // create a attachment folder for the submission attachments sSubAttachmentFolder = submittersName + resourceLoader.getString("stuviewsubm.submissatt") + "/"; sSubAttachmentFolder = escapeInvalidCharsEntry(sSubAttachmentFolder); final ZipEntry sSubAttachmentFolderEntry = new ZipEntry( sSubAttachmentFolder); out.putNextEntry(sSubAttachmentFolderEntry); } else { sSubAttachmentFolder += "_"; //submittersName = submittersName.concat("_"); } // add all submission attachment into the submission attachment folder zipAttachments(out, submittersName, sSubAttachmentFolder, s.getAttachments()); out.closeEntry(); } if (withFeedbackComment) { // the comments.txt file to show instructor's comments final String zipEntryName = submittersName + "comments" + AssignmentConstants.ZIP_COMMENT_FILE_TYPE; final String textEntryString = formattedText .encodeUnicode(s.getFeedbackComment()); createTextZipEntry(out, zipEntryName, textEntryString); } if (withFeedbackAttachment) { // create an attachment folder for the feedback attachments String feedbackSubAttachmentFolder = submittersName + resourceLoader.getString("download.feedback.attachment"); if (!withoutFolders) { feedbackSubAttachmentFolder += "/"; final ZipEntry feedbackSubAttachmentFolderEntry = new ZipEntry( feedbackSubAttachmentFolder); out.putNextEntry(feedbackSubAttachmentFolderEntry); } else { submittersName = submittersName.concat("_"); } // add all feedback attachment folder zipAttachments(out, submittersName, feedbackSubAttachmentFolder, s.getFeedbackAttachments()); out.closeEntry(); } } // if if (isAdditionalNotesEnabled && candidateDetailProvider != null) { final List<String> notes = candidateDetailProvider.getAdditionalNotes(u, st) .orElse(new ArrayList<String>()); if (!notes.isEmpty()) { final StringBuilder noteList = new StringBuilder("<ul>"); for (String note : notes) { noteList.append("<li>" + StringEscapeUtils.escapeHtml4(note) + "</li>"); } noteList.append("</ul>"); submittersAdditionalNotesHtml .append("<tr><td style='padding-right:10px;padding-left:10px'>" + submittersString + "</td><td style='padding-right:10px'>" + noteList + "</td></tr>"); } } } else { log.warn( "Can't add submission: {} to zip, missing the submittee or they are no longer allowed to submit in the site", s.getId()); } } catch (Exception e) { caughtException = e.toString(); if (log.isDebugEnabled()) { caughtStackTrace = ExceptionUtils.getStackTrace(e); } break; } } // if the user is still in site } // while -- there is submission if (caughtException == null) { // continue if (withGradeFile) { final ZipEntry gradesCSVEntry = new ZipEntry(root + "grades." + sheet.getFileExtension()); out.putNextEntry(gradesCSVEntry); sheet.write(out); out.closeEntry(); } if (isAdditionalNotesEnabled) { final ZipEntry additionalEntry = new ZipEntry( root + resourceLoader.getString("assignment.additional.notes.file.title") + ".html"); out.putNextEntry(additionalEntry); String htmlString = emailUtil.htmlPreamble("additionalnotes"); htmlString += "<h1>" + resourceLoader.getString("assignment.additional.notes.export.title") + "</h1>"; htmlString += "<div>" + resourceLoader.getString("assignment.additional.notes.export.header") + "</div><br/>"; htmlString += "<table border=\"1\" style=\"border-collapse:collapse;\"><tr><th>" + resourceLoader.getString("gen.student") + "</th><th>" + resourceLoader.getString("gen.notes") + "</th>" + submittersAdditionalNotesHtml + "</table>"; htmlString += "<br/><div>" + resourceLoader.getString("assignment.additional.notes.export.footer") + "</div>"; htmlString += emailUtil.htmlEnd(); log.debug("Additional information html: " + htmlString); final byte[] wes = htmlString.getBytes(); out.write(wes); additionalEntry.setSize(wes.length); out.closeEntry(); } } else { // log the error exceptionMessage.append(" Exception " + caughtException + " for creating submission zip file for assignment " + "\"" + assignmentTitle + "\"\n"); if (log.isDebugEnabled()) { exceptionMessage.append(caughtStackTrace); } } } catch (IOException e) { exceptionMessage.append("IOException for creating submission zip file for assignment " + "\"" + assignmentTitle + "\" exception: " + e + "\n"); } finally { // Complete the ZIP file if (out != null) { try { out.finish(); out.flush(); } catch (IOException e) { // tried } try { out.close(); } catch (IOException e) { // tried } } } }
From source file:org.tightblog.domain.WeblogEntryComment.java
public void setReferrer(String referrer) { this.referrer = StringEscapeUtils.escapeHtml4(referrer); }
From source file:org.zanata.action.CacheAction.java
/** * Return some sanitised HTML for the display name of the cache * * @param cacheName// ww w .ja v a2 s.co m * @return */ public String getDisplayName(String cacheName) { String emptyString = msgs.get("jsf.cacheStats.emptyString"); if (cacheName.isEmpty()) { return "<em>(" + emptyString + ")</em>"; } else { // Escape cache name in case it includes user input in future return StringEscapeUtils.escapeHtml4(cacheName); } }
From source file:org.zanata.ui.ActivityEntry.java
public String getActivityMessage(Activity activity) { boolean isVersionDeleted = isVersionDeleted(activity); boolean isProjectDeleted = isProjectDeleted(activity); switch (activity.getActivityType()) { case UPDATE_TRANSLATION: if (isProjectDeleted) { return msgs.format("jsf.dashboard.activity.translate.message.projectDeleted", activity.getWordCount(), getProjectName(activity), StringEscapeUtils.escapeHtml4(getLastTextFlowContent(activity))); } else if (isVersionDeleted) { return msgs.format("jsf.dashboard.activity.translate.message.versionDeleted", activity.getWordCount(), getProjectUrl(activity), getProjectName(activity), StringEscapeUtils.escapeHtml4(getLastTextFlowContent(activity))); } else {// w w w.j ava 2s.c o m return msgs.format("jsf.dashboard.activity.translate.message", activity.getWordCount(), getProjectUrl(activity), getProjectName(activity), getEditorUrl(activity), StringEscapeUtils.escapeHtml4(getLastTextFlowContent(activity))); } case REVIEWED_TRANSLATION: if (isProjectDeleted) { return msgs.format("jsf.dashboard.activity.review.message.projectDeleted", activity.getWordCount(), getProjectName(activity), StringEscapeUtils.escapeHtml4(getLastTextFlowContent(activity))); } else if (isVersionDeleted) { return msgs.format("jsf.dashboard.activity.review.message.versionDeleted", activity.getWordCount(), getProjectUrl(activity), getProjectName(activity), StringEscapeUtils.escapeHtml4(getLastTextFlowContent(activity))); } else { return msgs.format("jsf.dashboard.activity.review.message", activity.getWordCount(), getProjectUrl(activity), getProjectName(activity), getEditorUrl(activity), StringEscapeUtils.escapeHtml4(getLastTextFlowContent(activity))); } case UPLOAD_SOURCE_DOCUMENT: if (isProjectDeleted) { return msgs.format("jsf.dashboard.activity.uploadSource.message.projectDeleted", activity.getWordCount(), getProjectName(activity)); } else { return msgs.format("jsf.dashboard.activity.uploadSource.message", activity.getWordCount(), getProjectUrl(activity), getProjectName(activity)); } case UPLOAD_TRANSLATION_DOCUMENT: if (isProjectDeleted) { return msgs.format("jsf.dashboard.activity.uploadTranslation.message.projectDeleted", activity.getWordCount(), getProjectName(activity)); } else { return msgs.format("jsf.dashboard.activity.uploadTranslation.message", activity.getWordCount(), getProjectUrl(activity), getProjectName(activity)); } default: return ""; } }
From source file:pt.up.fe.specs.lang.ApacheStrings.java
public static String escapeHtml(String html) { return StringEscapeUtils.escapeHtml4(html); }