#endif
const Conditions* conds = assertion.getConditions();
+ if (!conds)
+ return;
+
// First verify the time conditions, using the specified timestamp, if non-zero.
- if (m_ts>0 && conds) {
+ if (m_ts>0) {
unsigned int skew = XMLToolingConfig::getConfig().clock_skew_secs;
time_t t=conds->getNotBeforeEpoch();
if (m_ts+skew < t)
bool found = false;
const vector<Audience*>& auds1 = ac->getAudiences();
for (vector<Audience*>::const_iterator a = auds1.begin(); !found && a!=auds1.end(); ++a) {
- for (vector<const XMLCh*>::const_iterator a2 = m_audiences.begin(); !found && a2!=m_audiences.end(); ++a2) {
- found = XMLString::equals((*a)->getAudienceURI(), *a2);
+ if (XMLString::equals(m_recipient, (*a)->getAudienceURI())) {
+ found = true;
+ }
+ else if (m_audiences) {
+ for (vector<const XMLCh*>::const_iterator a2 = m_audiences->begin(); !found && a2!=m_audiences->end(); ++a2) {
+ found = XMLString::equals((*a)->getAudienceURI(), *a2);
+ }
}
}