Skip to content

Commit

Permalink
fix keywords bug and add comments (#964)
Browse files Browse the repository at this point in the history
Signed-off-by: Joanne Wang <jowg@amazon.com>
  • Loading branch information
jowg-amazon committed Apr 4, 2024
1 parent 88140d1 commit e37b053
Showing 1 changed file with 16 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -329,21 +329,35 @@ public Object convertConditionFieldEqValQueryExpr(ConditionFieldEqualsValueExpre
return null;
}*/

/**
* Method used when structure of Sigma Rule does not have a field associated with the condition item and the value
* is a SigmaString type
* Ex:
* condition: selection_1
* selection1:
* - keyword1
*/
@Override
public Object convertConditionValStr(ConditionValueExpression condition) throws SigmaValueError {
String field = getFinalValueField();
ruleQueryFields.put(field, Map.of("type", "text", "analyzer", "rule_analyzer"));
SigmaString value = (SigmaString) condition.getValue();
boolean containsWildcard = value.containsWildcard();
return String.format(Locale.getDefault(), (containsWildcard? this.unboundWildcardExpression: this.unboundValueStrExpression),
this.convertValueStr((SigmaString) condition.getValue()));
}

/**
* Method used when structure of Sigma Rule does not have a field associated with the condition item and the value
* is a SigmaNumber type
*/
@Override
public Object convertConditionValNum(ConditionValueExpression condition) {
return String.format(Locale.getDefault(), this.unboundValueNumExpression, condition.getValue().toString());
}

/**
* Method used when structure of Sigma Rule does not have a field associated with the condition item and the value
* is a SigmaRegularExpression type
*/
@Override
public Object convertConditionValRe(ConditionValueExpression condition) {
return String.format(Locale.getDefault(), this.unboundReExpression, convertValueRe((SigmaRegularExpression) condition.getValue()));
Expand Down Expand Up @@ -448,12 +462,6 @@ private String getFinalField(String field) {
return this.getMappedField(field);
}

private String getFinalValueField() {
String field = "_" + valExpCount;
valExpCount++;
return field;
}

public static class AggregationQueries implements Writeable, ToXContentObject {
private static final String AGG_QUERY = "aggQuery";
private static final String BUCKET_TRIGGER_QUERY = "bucketTriggerQuery";
Expand Down

0 comments on commit e37b053

Please sign in to comment.