diff --git a/src/main/java/org/opensearch/securityanalytics/resthandler/RestSearchRuleAction.java b/src/main/java/org/opensearch/securityanalytics/resthandler/RestSearchRuleAction.java index 67df61303..bb21142a9 100644 --- a/src/main/java/org/opensearch/securityanalytics/resthandler/RestSearchRuleAction.java +++ b/src/main/java/org/opensearch/securityanalytics/resthandler/RestSearchRuleAction.java @@ -60,7 +60,6 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient cli Boolean isPrepackaged = request.paramAsBoolean("pre_packaged", true); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.parseXContent(request.contentOrSourceParamParser()); - searchSourceBuilder.fetchSource(null); QueryBuilder queryBuilder = QueryBuilders.boolQuery().must(searchSourceBuilder.query()); diff --git a/src/test/java/org/opensearch/securityanalytics/resthandler/RuleRestApiIT.java b/src/test/java/org/opensearch/securityanalytics/resthandler/RuleRestApiIT.java index f9cbe8401..7dc7ed764 100644 --- a/src/test/java/org/opensearch/securityanalytics/resthandler/RuleRestApiIT.java +++ b/src/test/java/org/opensearch/securityanalytics/resthandler/RuleRestApiIT.java @@ -211,7 +211,8 @@ public void testSearchingPrepackagedRulesByMitreAttackID() throws IOException { " }\n" + " }\n" + " }\n" + - " }\n" + + " },\n" + + " \"_source\": [\"rule.query_field_names\"]" + "}"; Response searchResponse = makeRequest(client(), "POST", String.format(Locale.getDefault(), "%s/_search", SecurityAnalyticsPlugin.RULE_BASE_URI), Collections.singletonMap("pre_packaged", "true"), @@ -220,6 +221,12 @@ public void testSearchingPrepackagedRulesByMitreAttackID() throws IOException { Map responseBody = asMap(searchResponse); Assert.assertEquals(9, ((Map) ((Map) responseBody.get("hits")).get("total")).get("value")); + // Verify that _source filtering is working + List> hits = ((List>)((Map) responseBody.get("hits")).get("hits")); + Map sourceOfDoc0 = (Map)hits.get(0).get("_source"); + Map rule = (Map) sourceOfDoc0.get("rule"); + assertEquals(1, rule.size()); + assertTrue(rule.containsKey("query_field_names")); } @SuppressWarnings("unchecked")