Example usage for org.apache.commons.text StringEscapeUtils escapeJson

List of usage examples for org.apache.commons.text StringEscapeUtils escapeJson

Introduction

In this page you can find the example usage for org.apache.commons.text StringEscapeUtils escapeJson.

Prototype

public static final String escapeJson(final String input) 

Source Link

Document

Escapes the characters in a String using Json String rules.

Escapes any values it finds into their Json String form.

Usage

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;
}