- for (vector<SecurityPolicyRule*>::const_iterator r = m_rules.begin(); r != m_rules.end(); ++r) {
- if ((*r)->evaluate(*(*c), request, policy))
- valid = true;
+ for (ptr_vector<SecurityPolicyRule>::const_iterator r = m_rules.begin(); !valid && r != m_rules.end(); ++r)
+ valid = r->evaluate(*(*c), request, policy);
+ if (!valid) {
+ throw SecurityPolicyException(
+ "Extension condition ($1) not successfully validated by policy.",
+ params(1,((*c)->getSchemaType() ? (*c)->getSchemaType()->toString().c_str() : (*c)->getElementQName().toString().c_str()))
+ );