X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fsaml2%2Fprofile%2FAssertionValidator.h;h=8a05e29dfb6577b8b61df8d55d5842b5bc25ae15;hb=69a716dedfd9e239bcc9206a7b8dc137b43f5f89;hp=f1276bd8ec0bbbf710f115e0d5f968efec099310;hpb=1358ecc315370a4dc0c02b941195919ca2bbd4c3;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/saml2/profile/AssertionValidator.h b/saml/saml2/profile/AssertionValidator.h index f1276bd..8a05e29 100644 --- a/saml/saml2/profile/AssertionValidator.h +++ b/saml/saml2/profile/AssertionValidator.h @@ -1,6 +1,6 @@ /* * Copyright 2001-2007 Internet2 - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -16,7 +16,7 @@ /** * @file saml/saml2/profile/AssertionValidator.h - * + * * SAML 2.0 basic assertion validator */ @@ -28,11 +28,12 @@ namespace opensaml { namespace saml2 { - + class SAML_API Assertion; class SAML_API Condition; - + /** + * @deprecated * SAML 2.0 basic assertion validator provides time and audience condition checking. */ class SAML_API AssertionValidator : public virtual xmltooling::Validator @@ -40,19 +41,22 @@ namespace opensaml { public: /** * Constructor - * - * @param audiences set of audience values representing recipient + * + * @param recipient name of assertion recipient (implicit audience) + * @param audiences additional audience values * @param ts timestamp to evaluate assertion conditions, or 0 to bypass check */ - AssertionValidator(const std::vector& audiences, time_t ts=0) : m_audiences(audiences), m_ts(ts) {} + AssertionValidator(const XMLCh* recipient, const std::vector* audiences=NULL, time_t ts=0) + : m_recipient(recipient), m_audiences(audiences), m_ts(ts) { + } virtual ~AssertionValidator() {} - + void validate(const xmltooling::XMLObject* xmlObject) const; /** * Type-safe validation method. - * + * * @param assertion assertion to validate */ virtual void validateAssertion(const Assertion& assertion) const; @@ -60,21 +64,25 @@ namespace opensaml { /** * Condition validation. * - *

Base class version only understands AudienceRestrictions. - * + *

The base class version only understands AudienceRestriction conditions. + * All other condition types will be rejected and require subclassing to + * prevent validation failure. + * * @param condition condition to validate - * @return true iff condition was understood */ - virtual bool validateCondition(const Condition* condition) const; + virtual void validateCondition(const Condition* condition) const; protected: - /** Set of audience values representing recipient. */ - const std::vector& m_audiences; + /** Name of recipient (implicit audience). */ + const XMLCh* m_recipient; + + /** Additional audience values. */ + const std::vector* m_audiences; /** Timestamp to evaluate assertion conditions. */ time_t m_ts; }; - + }; };