[ 
https://issues.apache.org/jira/browse/NIFI-5266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16502023#comment-16502023
 ] 

ASF GitHub Bot commented on NIFI-5266:
--------------------------------------

Github user ottobackwards commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2760#discussion_r193133140
  
    --- Diff: 
nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/PutElasticsearchHttp.java
 ---
    @@ -288,42 +290,23 @@ public void onTrigger(final ProcessContext context, 
final ProcessSession session
                 session.read(file, in -> {
                     json.append(IOUtils.toString(in, charset).replace("\r\n", 
" ").replace('\n', ' ').replace('\r', ' '));
                 });
    -            if (indexOp.equalsIgnoreCase("index")) {
    -                sb.append("{\"index\": { \"_index\": \"");
    -                sb.append(index);
    -                sb.append("\", \"_type\": \"");
    -                sb.append(docType);
    -                sb.append("\"");
    -                if (!StringUtils.isEmpty(id)) {
    -                    sb.append(", \"_id\": \"");
    -                    sb.append(id);
    -                    sb.append("\"");
    -                }
    -                sb.append("}}\n");
    -                sb.append(json);
    -                sb.append("\n");
    -            } else if (indexOp.equalsIgnoreCase("upsert") || 
indexOp.equalsIgnoreCase("update")) {
    -                sb.append("{\"update\": { \"_index\": \"");
    -                sb.append(index);
    -                sb.append("\", \"_type\": \"");
    -                sb.append(docType);
    -                sb.append("\", \"_id\": \"");
    -                sb.append(id);
    -                sb.append("\" }\n");
    -                sb.append("{\"doc\": ");
    -                sb.append(json);
    -                sb.append(", \"doc_as_upsert\": ");
    -                sb.append(indexOp.equalsIgnoreCase("upsert"));
    -                sb.append(" }\n");
    -            } else if (indexOp.equalsIgnoreCase("delete")) {
    -                sb.append("{\"delete\": { \"_index\": \"");
    -                sb.append(index);
    -                sb.append("\", \"_type\": \"");
    -                sb.append(docType);
    -                sb.append("\", \"_id\": \"");
    -                sb.append(id);
    -                sb.append("\" }\n");
    +
    +            String jsonString = json.toString();
    +
    +            // Ensure the JSON body is well-formed
    +            try {
    --- End diff --
    
    I wonder if a generally available validate json wouldn't be better, and 
something the next person couldn't use.


> PutElasticsearchHttp processors should sanitize parameters
> ----------------------------------------------------------
>
>                 Key: NIFI-5266
>                 URL: https://issues.apache.org/jira/browse/NIFI-5266
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Extensions
>            Reporter: Matt Burgess
>            Assignee: Matt Burgess
>            Priority: Major
>
> Currently PutElasticsearchHttp and PutElasticsearchHttpRecord put the 
> property values for index, type, and id into the Bulk API command as they are 
> specified in the processor properties. This can cause errors when special 
> characters such as a double-quote (") is encountered. Although a double-quote 
> (for example) is not supported in an index name, it is valid in a type name 
> and should be allowed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to