List of usage examples for org.apache.commons.text StringEscapeUtils escapeJson
public static final String escapeJson(final String input)
Escapes the characters in a String using Json String rules.
Escapes any values it finds into their Json String form.
From source file:org.apache.nifi.processors.elasticsearch.AbstractElasticsearchHttpProcessor.java
protected void buildBulkCommand(StringBuilder sb, String index, String docType, String indexOp, String id, String jsonString) {//from ww w. ja v a2 s. co m if (indexOp.equalsIgnoreCase("index")) { sb.append("{\"index\": { \"_index\": \""); sb.append(StringEscapeUtils.escapeJson(index)); sb.append("\", \"_type\": \""); sb.append(StringEscapeUtils.escapeJson(docType)); sb.append("\""); if (!StringUtils.isEmpty(id)) { sb.append(", \"_id\": \""); sb.append(StringEscapeUtils.escapeJson(id)); sb.append("\""); } sb.append("}}\n"); sb.append(jsonString); sb.append("\n"); } else if (indexOp.equalsIgnoreCase("upsert") || indexOp.equalsIgnoreCase("update")) { sb.append("{\"update\": { \"_index\": \""); sb.append(StringEscapeUtils.escapeJson(index)); sb.append("\", \"_type\": \""); sb.append(StringEscapeUtils.escapeJson(docType)); sb.append("\", \"_id\": \""); sb.append(StringEscapeUtils.escapeJson(id)); sb.append("\" }\n"); sb.append("{\"doc\": "); sb.append(jsonString); sb.append(", \"doc_as_upsert\": "); sb.append(indexOp.equalsIgnoreCase("upsert")); sb.append(" }\n"); } else if (indexOp.equalsIgnoreCase("delete")) { sb.append("{\"delete\": { \"_index\": \""); sb.append(StringEscapeUtils.escapeJson(index)); sb.append("\", \"_type\": \""); sb.append(StringEscapeUtils.escapeJson(docType)); sb.append("\", \"_id\": \""); sb.append(StringEscapeUtils.escapeJson(id)); sb.append("\" }\n"); } }
From source file:org.codelibs.fess.api.BaseJsonApiManager.java
protected String escapeJson(final Object obj) { if (obj == null) { return "null"; }/*from w w w .j av a 2 s . co m*/ final StringBuilder buf = new StringBuilder(255); if (obj instanceof String[]) { buf.append('['); boolean first = true; for (final Object child : (String[]) obj) { if (first) { first = false; } else { buf.append(','); } buf.append(escapeJson(child)); } buf.append(']'); } else if (obj instanceof List<?>) { buf.append('['); boolean first = true; for (final Object child : (List<?>) obj) { if (first) { first = false; } else { buf.append(','); } buf.append(escapeJson(child)); } buf.append(']'); } else if (obj instanceof Map<?, ?>) { buf.append('{'); boolean first = true; for (final Map.Entry<?, ?> entry : ((Map<?, ?>) obj).entrySet()) { if (first) { first = false; } else { buf.append(','); } buf.append(escapeJson(entry.getKey())).append(':').append(escapeJson(entry.getValue())); } buf.append('}'); } else if (obj instanceof Integer) { buf.append(((Integer) obj).intValue()); } else if (obj instanceof Long) { buf.append(((Long) obj).longValue()); } else if (obj instanceof Float) { buf.append(((Float) obj).floatValue()); } else if (obj instanceof Double) { buf.append(((Double) obj).doubleValue()); } else if (obj instanceof Boolean) { buf.append(obj.toString()); } else if (obj instanceof Date) { final SimpleDateFormat sdf = new SimpleDateFormat(CoreLibConstants.DATE_FORMAT_ISO_8601_EXTEND, Locale.ROOT); buf.append('\"').append(StringEscapeUtils.escapeJson(sdf.format(obj))).append('\"'); } else { buf.append('\"').append(StringEscapeUtils.escapeJson(obj.toString())).append('\"'); } return buf.toString(); }
From source file:org.codelibs.fess.api.suggest.SuggestApiManager.java
@Override public void process(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) throws IOException, ServletException { final FessConfig fessConfig = ComponentUtil.getFessConfig(); if (!fessConfig.isAcceptedSearchReferer(request.getHeader("referer"))) { writeJsonResponse(99, StringUtil.EMPTY, "Referer is invalid."); return;/*from ww w . j av a 2 s. co m*/ } int status = 0; String errMsg = StringUtil.EMPTY; final StringBuilder buf = new StringBuilder(255); // TODO replace response stream final RoleQueryHelper roleQueryHelper = ComponentUtil.getRoleQueryHelper(); final SearchService searchService = ComponentUtil.getComponent(SearchService.class); try { final RequestParameter parameter = RequestParameter.parse(request); final String[] langs = searchService.getLanguages(request, parameter); final SuggestHelper suggestHelper = ComponentUtil.getSuggestHelper(); final SuggestRequestBuilder builder = suggestHelper.suggester().suggest(); builder.setQuery(parameter.getQuery()); stream(parameter.getSuggestFields()).of(stream -> stream.forEach(builder::addField)); roleQueryHelper.build(SearchRequestType.SUGGEST).stream().forEach(builder::addRole); builder.setSize(parameter.getNum()); stream(langs).of(stream -> stream.forEach(builder::addLang)); stream(parameter.getTags()).of(stream -> stream.forEach(builder::addTag)); final String key = ComponentUtil.getVirtualHostHelper().getVirtualHostKey(); if (StringUtil.isNotBlank(key)) { builder.addTag(key); } builder.addKind(SuggestItem.Kind.USER.toString()); if (ComponentUtil.getFessConfig().isSuggestSearchLog()) { builder.addKind(SuggestItem.Kind.QUERY.toString()); } if (ComponentUtil.getFessConfig().isSuggestDocuments()) { builder.addKind(SuggestItem.Kind.DOCUMENT.toString()); } final SuggestResponse suggestResponse = builder.execute().getResponse(); buf.append("\"result\":{"); buf.append("\"took\":\"").append(suggestResponse.getTookMs()).append('\"'); buf.append(",\"total\":\"").append(suggestResponse.getTotal()).append('\"'); buf.append(",\"num\":\"").append(suggestResponse.getNum()).append('\"'); if (!suggestResponse.getItems().isEmpty()) { buf.append(",\"hits\":["); boolean first = true; for (final SuggestItem item : suggestResponse.getItems()) { if (!first) { buf.append(','); } first = false; buf.append("{\"text\":\"").append(StringEscapeUtils.escapeJson(item.getText())).append('\"'); buf.append(",\"tags\":["); for (int i = 0; i < item.getTags().length; i++) { if (i > 0) { buf.append(','); } buf.append('\"').append(StringEscapeUtils.escapeJson(item.getTags()[i])).append('\"'); } buf.append(']'); buf.append('}'); } buf.append(']'); } buf.append('}'); } catch (final Exception e) { status = 1; errMsg = e.getMessage(); if (errMsg == null) { errMsg = e.getClass().getName(); } if (logger.isDebugEnabled()) { logger.debug("Failed to process a suggest request.", e); } if (e instanceof InvalidAccessTokenException) { final InvalidAccessTokenException iate = (InvalidAccessTokenException) e; response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); response.setHeader("WWW-Authenticate", "Bearer error=\"" + iate.getType() + "\""); } } writeJsonResponse(status, buf.toString(), errMsg); }
From source file:org.codelibs.fess.app.web.admin.backup.AdminBackupAction.java
private static StringBuilder appendJson(final String field, final Object value, final StringBuilder buf) { buf.append('"').append(StringEscapeUtils.escapeJson(field)).append('"').append(':'); if (value == null) { buf.append("null"); } else if (value instanceof LocalDateTime) { final String format = ((LocalDateTime) value).atZone(ZoneId.systemDefault()) .withZoneSameInstant(ZoneId.of("UTC")).format(ISO_8601_FORMATTER); buf.append('"').append(StringEscapeUtils.escapeJson(format)).append('"'); } else if (value instanceof String[]) { final String json = Arrays.stream((String[]) value) .map(s -> "\"" + StringEscapeUtils.escapeJson(s) + "\"").collect(Collectors.joining(",")); buf.append('[').append(json).append(']'); } else if (value instanceof List) { final String json = ((List<?>) value).stream() .map(s -> "\"" + StringEscapeUtils.escapeJson(s.toString()) + "\"") .collect(Collectors.joining(",")); buf.append('[').append(json).append(']'); } else if (value instanceof Map) { buf.append('{'); final String json = ((Map<?, ?>) value).entrySet().stream().map(e -> { final StringBuilder tempBuf = new StringBuilder(); appendJson(e.getKey().toString(), e.getValue(), tempBuf); return tempBuf.toString(); }).collect(Collectors.joining(",")); buf.append(json);/*from w w w . java 2s .c o m*/ buf.append('}'); } else if (value instanceof Long || value instanceof Integer) { buf.append(((Number) value).longValue()); } else if (value instanceof Number) { buf.append(((Number) value).doubleValue()); } else { buf.append('"').append(StringEscapeUtils.escapeJson(value.toString())).append('"'); } return buf; }
From source file:org.codelibs.fess.entity.PingResponse.java
public PingResponse(final ClusterHealthResponse response) { status = response.getStatus() == ClusterHealthStatus.RED ? 1 : 0; clusterName = response.getClusterName(); clusterStatus = response.getStatus().toString(); try (OutputStream out = EsUtil.getXContentOutputStream(response, XContentType.JSON)) { message = ((ByteArrayOutputStream) out).toString(Constants.UTF_8); if (StringUtil.isBlank(message)) { message = "{}"; }/*from www . j a v a 2s. com*/ } catch (final IOException e) { message = "{ \"error\" : \"" + StringEscapeUtils.escapeJson(e.getMessage()) + "\"}"; } }
From source file:org.codelibs.fess.timer.SystemMonitorTarget.java
protected StringBuilder append(final StringBuilder buf, final String key, final Supplier<Object> supplier) { buf.append('"').append(key).append("\":"); try {//w w w . j av a 2 s . c om final Object value = supplier.get(); if (value == null) { buf.append("null"); } else if (value instanceof Integer) { buf.append(((Integer) value).intValue()); } else if (value instanceof Long) { buf.append(((Long) value).longValue()); } else if (value instanceof Short) { buf.append(((Short) value).shortValue()); } else if (value instanceof double[]) { buf.append(Arrays.toString((double[]) value)); } else { buf.append('"').append(StringEscapeUtils.escapeJson(value.toString())).append('"'); } } catch (final Exception e) { buf.append("null"); } return buf; }
From source file:org.codelibs.fess.timer.SystemMonitorTarget.java
private void appendJvmStats(final StringBuilder buf) { buf.append("\"jvm\":{"); final JvmStats jvmStats = JvmStats.jvmStats(); final Mem mem = jvmStats.getMem(); buf.append("\"memory\":{"); buf.append("\"heap\":{"); append(buf, "used", () -> mem.getHeapUsed().getBytes()).append(','); append(buf, "committed", () -> mem.getHeapCommitted().getBytes()).append(','); append(buf, "max", () -> mem.getHeapMax().getBytes()).append(','); append(buf, "percent", () -> mem.getHeapUsedPercent()); buf.append("},"); buf.append("\"non_heap\":{"); append(buf, "used", () -> mem.getNonHeapUsed().getBytes()).append(','); append(buf, "committed", () -> mem.getNonHeapCommitted().getBytes()); buf.append('}'); buf.append("},"); final List<BufferPool> bufferPools = jvmStats.getBufferPools(); buf.append("\"pools\":{"); buf.append(bufferPools.stream().map(p -> { final StringBuilder b = new StringBuilder(); b.append('"').append(StringEscapeUtils.escapeJson(p.getName())).append("\":{"); append(b, "count", () -> p.getCount()).append(','); append(b, "used", () -> p.getUsed().getBytes()).append(','); append(b, "capacity", () -> p.getTotalCapacity().getBytes()).append('}'); return b.toString(); }).collect(Collectors.joining(","))); buf.append("},"); final GarbageCollectors gc = jvmStats.getGc(); buf.append("\"gc\":{"); buf.append(Arrays.stream(gc.getCollectors()).map(c -> { final StringBuilder b = new StringBuilder(); b.append('"').append(StringEscapeUtils.escapeJson(c.getName())).append("\":{"); append(b, "count", () -> c.getCollectionCount()).append(','); append(b, "time", () -> c.getCollectionTime().getMillis()).append('}'); return b.toString(); }).collect(Collectors.joining(","))); buf.append("},"); final Threads threads = jvmStats.getThreads(); buf.append("\"threads\":{"); append(buf, "count", () -> threads.getCount()).append(','); append(buf, "peak", () -> threads.getPeakCount()); buf.append("},"); final Classes classes = jvmStats.getClasses(); buf.append("\"classes\":{"); append(buf, "loaded", () -> classes.getLoadedClassCount()).append(','); append(buf, "total_loaded", () -> classes.getTotalLoadedClassCount()).append(','); append(buf, "unloaded", () -> classes.getUnloadedClassCount()); buf.append("},"); append(buf, "uptime", () -> jvmStats.getUptime().getMillis()); buf.append("},"); }
From source file:org.onosproject.d.config.ResourceIds.java
/** * Converts ResourceId to instance-identifier. * * @param rid to convert/* w w w .j a v a 2s . c om*/ * @return instance-identifier * * @see <a href="https://tools.ietf.org/html/rfc7951#section-6.11">RFC 7951</a> * @see <a href="https://tools.ietf.org/html/rfc7950#section-14">RFC 7950 for ABNF</a> */ public static String toInstanceIdentifier(ResourceId rid) { StringBuilder s = new StringBuilder(); String lastNamespace = null; for (NodeKey nk : rid.nodeKeys()) { if (nk.schemaId().name().equals("/")) { // special handling for root nodeKey: skip it // YANG runtime root: null:/ // DCS root: org.onosproject.dcs:/ continue; } s.append('/'); if (!Objects.equals(lastNamespace, nk.schemaId().namespace())) { s.append(nk.schemaId().namespace()); s.append(':'); lastNamespace = nk.schemaId().namespace(); } s.append(nk.schemaId().name()); if (nk instanceof LeafListKey) { LeafListKey llk = (LeafListKey) nk; s.append('['); s.append('.'); s.append('='); s.append('"').append(StringEscapeUtils.escapeJson(llk.asString())).append('"'); s.append(']'); } else if (nk instanceof ListKey) { ListKey lk = (ListKey) nk; for (KeyLeaf kl : lk.keyLeafs()) { s.append('['); if (!Objects.equals(kl.leafSchema().namespace(), lastNamespace)) { s.append(kl.leafSchema().namespace()); s.append(':'); } s.append(kl.leafSchema().name()); s.append('='); s.append('"').append(StringEscapeUtils.escapeJson(kl.leafValAsString())).append('"'); s.append(']'); } } else { // normal NodeKey // nothing to do } } if (s.length() == 0) { return "/"; } return s.toString(); }
From source file:org.sakaiproject.rubrics.logic.RubricsServiceImpl.java
private String createCriterionJsonPayload(String associatedItemId, String evaluatedItemId, Map<String, String> formPostParameters, Resource<ToolItemRubricAssociation> association) throws Exception { Map<String, Map<String, String>> criterionDataMap = extractCriterionDataFromParams(formPostParameters); String criterionJsonData = ""; int index = 0; boolean pointsAdjusted = false; String points = null;//from ww w . j a v a 2s. co m String selectedRatingId = null; String inlineRubricUri = String.format("%s?%s", association.getLink("rubric").getHref(), "projection=inlineRubric"); RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.add("Authorization", String.format("Bearer %s", generateJsonWebToken(association.getContent().getToolId()))); HttpEntity<?> requestEntity = new HttpEntity<>(headers); ResponseEntity<Rubric> rubricEntity = restTemplate.exchange(inlineRubricUri, HttpMethod.GET, requestEntity, Rubric.class); Map<String, Criterion> criterions = new HashMap<>(); for (Criterion criterion : rubricEntity.getBody().getCriterions()) { criterions.put(String.valueOf(criterion.getId()), criterion); } for (Map.Entry<String, Map<String, String>> criterionData : criterionDataMap.entrySet()) { if (index > 0) { criterionJsonData += ", "; } index++; final String selectedRatingPoints = criterionData.getValue() .get(RubricsConstants.RBCS_PREFIX + evaluatedItemId + "-" + associatedItemId + "-criterion"); if (StringUtils.isNotBlank(criterionData.getValue().get(RubricsConstants.RBCS_PREFIX + evaluatedItemId + "-" + associatedItemId + "-criterion-override"))) { pointsAdjusted = true; points = criterionData.getValue().get(RubricsConstants.RBCS_PREFIX + evaluatedItemId + "-" + associatedItemId + "-criterion-override"); } else { pointsAdjusted = false; points = selectedRatingPoints; } Criterion criterion = criterions.get(criterionData.getKey()); Optional<Rating> rating = criterion.getRatings().stream() .filter(c -> String.valueOf(c.getPoints()).equals(selectedRatingPoints)).findFirst(); if (rating.isPresent()) { selectedRatingId = String.valueOf(rating.get().getId()); } if (StringUtils.isEmpty(points)) { points = "0"; } criterionJsonData += String .format("{ \"criterionId\" : \"%s\", \"points\" : \"%s\", " + "\"comments\" : \"%s\", \"pointsAdjusted\" : %b, \"selectedRatingId\" : \"%s\" }", criterionData.getKey(), points, StringEscapeUtils .escapeJson(criterionData.getValue() .get(RubricsConstants.RBCS_PREFIX + evaluatedItemId + "-" + associatedItemId + "-criterion-comment")), pointsAdjusted, selectedRatingId); } return criterionJsonData; }