private Collection<ConfigAttribute> getEentConfigAttributes(SecurityRule rule) {
   List<ConfigAttribute> configAttributes = new ArrayList<ConfigAttribute>();
   if (rule.getAttributes() != null) {
     for (String attribute : rule.getAttributes()) {
       configAttributes.add(new SecurityConfig(attribute));
     }
   }
   if (StringUtils.hasText(rule.getExpression())) {
     configAttributes.add(
         new EventExpressionConfigAttribute(
             expressionParser.parseExpression(rule.getExpression())));
   }
   return configAttributes;
 }
 private AbstractAccessDecisionManager createDefaultEventManager(SecurityRule rule) {
   List<AccessDecisionVoter<? extends Object>> voters =
       new ArrayList<AccessDecisionVoter<? extends Object>>();
   voters.add(new EventExpressionVoter<Object>());
   voters.add(new EventVoter<Object>());
   voters.add(new RoleVoter());
   if (rule.getComparisonType() == SecurityRule.ComparisonType.ANY) {
     return new AffirmativeBased(voters);
   } else if (rule.getComparisonType() == SecurityRule.ComparisonType.ALL) {
     return new UnanimousBased(voters);
   } else if (rule.getComparisonType() == SecurityRule.ComparisonType.MAJORITY) {
     return new ConsensusBased(voters);
   } else {
     throw new IllegalStateException(
         "Unknown SecurityRule match type: " + rule.getComparisonType());
   }
 }