in src/main/java/org/apache/sling/xss/impl/style/ValidatingDocumentHandler.java [123:149]
private boolean isValidCondition(Condition condition) {
switch (condition.getConditionType()) {
case Condition.SAC_CLASS_CONDITION:
return cssPolicy.isValidClassName(condition.toString().toLowerCase(Locale.ENGLISH));
case Condition.SAC_ID_CONDITION:
return cssPolicy.isValidId(condition.toString().toLowerCase(Locale.ENGLISH));
case Condition.SAC_AND_CONDITION:
case Condition.SAC_OR_CONDITION:
CombinatorCondition comb = (CombinatorCondition) condition;
return isValidCondition(comb.getFirstCondition()) && isValidCondition(comb.getSecondCondition());
case Condition.SAC_NEGATIVE_CONDITION:
return isValidCondition(((NegativeCondition) condition).getCondition());
case Condition.SAC_PSEUDO_CLASS_CONDITION:
return cssPolicy.isValidPseudoElementName(condition.toString().toLowerCase(Locale.ENGLISH));
case Condition.SAC_ATTRIBUTE_CONDITION:
case Condition.SAC_BEGIN_HYPHEN_ATTRIBUTE_CONDITION:
case Condition.SAC_ONE_OF_ATTRIBUTE_CONDITION:
return false;
case Condition.SAC_ONLY_CHILD_CONDITION:
case Condition.SAC_ONLY_TYPE_CONDITION:
// constant values, unconditionally true
return true;
default:
return false;
}
}